表单验证的状态模式

时间:2015-08-10 17:53:23

标签: forms validation design-patterns user-input state

我需要使用表单捕获用户输入。表单中的每个字段都将进行验证。该字段有效或无效。根据用户输入,可以启用,禁用,过滤或以其他方式修改表单的某些部分。

我正在考虑通过表单对状态转换进行建模的状态模式。每个州都将影响表单的显示方式,过滤方式等。但是,我对状态模式的理解是,需要大量的状态来表示我的表单。

例如;如果我有10个可以有效或无效的字段:

10P2 = 90个排列。

这是代码中表示的大量状态,我已经大大简化了问题。

问题:

  1. 我是否误解了如何为我的问题实现状态模式?
  2. 如果没有,状态模式是否是我问题的错误解决方案?
  3. 如果对最后一个问题是肯定的,那么什么是一个很好的通用解决方案?

1 个答案:

答案 0 :(得分:1)

  

我误解了如何实现我的状态模式   问题

我认为你已经理解正确了。

  

如果没有,状态模式是否是我问题的错误解决方案?

是。当状态(条件)有限时,状态模式是一个很好的解决方案。在你的情况下不是这样。

  

如果对最后一个问题是肯定的,那么什么是一个很好的通用解决方案?

我建议使用Specification模式。您可以在输入字段中附加任意数量的规则。规则可以确定是应该启用还是禁用,可见或隐藏字段。另外值得注意的是,规则可以单独进行单元测试。