dev*_*ium 2 architecture oop validation
假设我必须为一家小型诊所公司实施一项计划,该计划允许其用户(即医生)安排咨询,记录客户的病史等.因此,这可能是标准的3层应用程序:演示,控制器和数据层(将连接到数据库).
我看到3种可能性:
我的第一个想法是将验证代码放在域层中.但是我觉得那时我可能会想要检查A类,然后检查使用A的B,然后使用B等的C检查.另一方面,它很好,因为它很容易单元化 - 测试验证逻辑.
还有第二种思想,即尽可能快地验证用户输入的最佳位置,即可能在表示层(或在控制器中).一般来说,这似乎是一个好主意.如果在Controller上,它也可能很容易进行单元测试.它还允许人们切换视图或数据层,但仍然拥有一切正确.
尝试将最有效的逻辑放在数据库本身上.这似乎是一个好主意,因为它强制执行没有数据破坏数据库.我看到的问题是,如果我想使用不同的数据存储库,我将不得不再次为新的数据验证逻辑.例如,在域层具有这种逻辑就不会有这个问题.
你一般如何解决这个问题?
正如您所指出的,验证数据的位置不止一个.
还有几个级别的验证:
有一种思想流派认为你应该考虑所有这些:
我不认为这些应该是"要么"决定.