Forms 表单对象是否应该承担显示和处理的双重责任?
我有一个带有表单类的原型,可以自动生成HTML表单,现在我正在将一些处理功能插入原型中 生成表单HTML的表单类是否也应该处理表单?这样做会使这个类有两个不同的,不同的…但相关的目的 这应该是一个类,还是分成两个类?在OOD中,通常建议一个类应该只有一个改变的理由。您描述的示例显然属于这样一种情况,即您可能不希望将表单生成和处理混合在一起 然而,在您的示例中,您似乎有三个不同的职责:Forms 表单对象是否应该承担显示和处理的双重责任?,forms,oop,class-design,Forms,Oop,Class Design,我有一个带有表单类的原型,可以自动生成HTML表单,现在我正在将一些处理功能插入原型中 生成表单HTML的表单类是否也应该处理表单?这样做会使这个类有两个不同的,不同的…但相关的目的 这应该是一个类,还是分成两个类?在OOD中,通常建议一个类应该只有一个改变的理由。您描述的示例显然属于这样一种情况,即您可能不希望将表单生成和处理混合在一起 然而,在您的示例中,您似乎有三个不同的职责: 表单的结构表示,包括字段定义等 将表单转换为HTML表示的表单到HTML过程 表单提交过程,评估提交的数据并生成
- 实现的解耦
- 未来的扩展点
- 数据表示与处理操作的分离
- 取决于“处理表单”的含义。例如,创建一个具有方法CreateChildForm()和另一个方法ProcessChildForm(form)的类是完全合理的
创建自己处理的表单也是合理的。e、 g.Form.Process()
换句话说,这取决于你想做什么