我有一个带有Form类的原型,它自动生成一个HTML表单,现在我将一些处理功能插入到原型中。
为表单生成HTML的同一Form类是否也处理表单?这样做会使课程有两个不同的,不同的......相关的目的。
这应该是一个类,还是应该分成两个类?
答案 0 :(得分:1)
在OOD中,Single Responsibility Principle通常建议一个类只有一个改变的理由。您描述的示例似乎显然属于不想要混合表单生成和处理的情况。
但是,在您的示例中,您似乎有三个不同的职责:
当然,可以将任意数量的这些责任混合在一起,但是 - 我认为你会发现分离可能会创造价值,包括:
答案 1 :(得分:1)
取决于“处理表单”的含义。例如,创建一个具有方法 CreateChildForm()的类和另一个方法 ProcessChildForm(form)。
是完全合理的。创建自己处理的表单也是合理的。例如 Form.Process()的。
换句话说,这取决于你想要做什么。