选择哪种OOP方法?

时间:2019-09-11 13:31:03

标签: typescript oop

有实体作为物品。用户可以add/edit

EditAdd的形式相似,因此对它们的验证是相同的。

用户提交表单时,应该选择策略,该怎么做:addupdate

选择哪种OOP方法?

策略模式?

现在看起来:

if(this.dialogAction === "add") {
  // LOGIC ADD
}

if(this.dialogAction === "edit") {
 // LOGIC EDIT
}

我应该创建两个类AddClassEditClassValidationClass吗?

他们两个都使用ValidationClass

仅动作之间存在差异。

动作添加使用服务:service.add(); 编辑动作使用服务中的方法:service.edit()

1 个答案:

答案 0 :(得分:0)

我认为您不需要策略模式。您的算法定义明确,包括两个步骤:验证(1)和动作执行(2)。

algorithm() {
    validate();
    action.execute();
}

action可能是command,并且会有AddCommandEditCommand。当用户提交表单时,您可以让算法知道要使用什么命令。