java链式创意OOP设计模式问题
发布时间:2022-08-30 09:53:17 297
相关标签: # php
我正在创建一个负责验证配置的类。此类调用其他类,通过以链的形式创建新实例来验证所述配置。乍一看,代码结构看起来很糟糕,但它确实有效。无论如何,我认为这不是处理这种逻辑的最佳方式。
我在这里留下了 TypeScript 中代码的简化版本,但我也将其留在 Python 和 Java 中,仅供参考:
class Validator {
private _notValidatedConfig: NotValidatedConfig
constructor(notValidatedConfig: NotValidatedConfig) {
this._notValidatedConfig = notValidatedConfig
}
validateConfig(): ValidatedConfig {
return (
new Phase4Validation(
new Phase3Validation(
new Phase2Validation(
new Phase1Validation(
this._notValidatedConfig
).validate()
).validate()
).validate()
).validate()
)
}
// Alternative
validateConfig2(): ValidatedConfig {
const validatedPhase1Config: ValidatedPhase1Config = new Phase1Validation(this._notValidatedConfig).validate()
const validatedPhase2Config: ValidatedPhase2Config = new Phase2Validation(validatedPhase1Config).validate()
const validatedPhase3Config: ValidatedPhase3Config = new Phase3Validation(validatedPhase2Config).validate()
const validatedPhase4Config: ValidatedPhase4Config = new Phase4Validation(validatedPhase3Config).validate()
return validatedPhase4Config;
}
}
Python
Java免责声明:我对 Java 没有任何经验,所以可能存在一些语法错误。
“替代”是相同的代码,但没有直接链接,相反,对于每次验证,它都会创建一个新变量。我认为“替代”更具可读性,但性能更差。
你觉得这段代码怎么样?你改变了什么?您将如何面对这个问题或使用什么设计模式或框架?(编程语言对这些问题无关紧要)
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报