我需要使用表单捕获用户输入。表单中的每个字段都将进行验证。该字段有效或无效。根据用户输入,可以启用,禁用,过滤或以其他方式修改表单的某些部分。
我正在考虑通过表单对状态转换进行建模的状态模式。每个州都将影响表单的显示方式,过滤方式等。但是,我对状态模式的理解是,需要大量的状态来表示我的表单。
例如;如果我有10个可以有效或无效的字段:
10P2 = 90个排列。
这是代码中表示的大量状态,我已经大大简化了问题。
问题:
答案 0 :(得分:1)
我误解了如何实现我的状态模式 问题
我认为你已经理解正确了。
如果没有,状态模式是否是我问题的错误解决方案?
是。当状态(条件)有限时,状态模式是一个很好的解决方案。在你的情况下不是这样。
如果对最后一个问题是肯定的,那么什么是一个很好的通用解决方案?
我建议使用Specification模式。您可以在输入字段中附加任意数量的规则。规则可以确定是应该启用还是禁用,可见或隐藏字段。另外值得注意的是,规则可以单独进行单元测试。