我正在根据以下假设编写一些验证代码:


验证码必须在外部类中


即没有数据类包含它自己的验证

可以以不同方式验证同一对象


例如仅验证语法;针对数据库查找进行验证;验证是否重复;等等

验证输出可以根据需要而有所不同


例如输出单个错误消息;输出所有验证错误的列表;类似,但格式为JSON,并包含错误代码;等等



OO设计模式的哪种组合最能解决这个问题?工厂可能是获取特定验证器的好方法,但是他们的更好方法是吗?

最佳答案

一种尺寸并不适合所有人!简单点!

为验证器提供通用的方法/界面来输出数据,对警告进行分类,对过滤器/过程警告进行多次验证。不要自己创建任何复杂的验证方式,至少在编写一些实际的验证器之前不要这样做。

移开方式,让验证者执行他们应该做的事情:

for validator in all_validators:
    validator.validate(model)

关于design-patterns - 用于验证的OO设计模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1127898/

10-14 15:15
查看更多