在以下场景中,您将如何构建代码:
有几个业务对象(例如,People,House等),在它们之间,您需要验证用户输入(来自文本框)。会不会这样:
由于
答案 0 :(得分:4)
我在这种情况下认可的一种非常广泛使用的方法是引入一个视图模型的概念:一个聚合所有要在表单中显示的数据的类,它指定(通过属性或其他一些机制)什么应对此数据执行验证类型。
这种方法有几个好处,包括:
执行验证的实际代码通常位于单独的验证类中;您的viewmodel只会指示每个验证应如何应用于每个数据。
答案 1 :(得分:2)
每个业务对象。我经典地让每个人都实现了一个IValidator接口,该接口为对象吐出所有验证错误。
答案 2 :(得分:0)
在业务对象中。原因是您希望验证规则可以测试。如果规则很重要,你会想要用测试来覆盖它们,如果它们不是 - 不要首先实现它们。将这种情况发挥到极致可以为代码提供极其薄弱的代码,并且几乎没有任何逻辑。这是需要的东西。
答案 3 :(得分:0)
这里有一些好的做法:http://colinjack.blogspot.com/2008/03/domain-model-validation.html
一旦到位,在域模型中,UI应该能够反映模型的验证状态/输出。