在Jdon上看到这个模式,感觉很有意思。第一眼感觉很突然,这也是模式,我们在业务中不经常这么做吗。换个角度一想,根据模式的定义,这还真是个模式。有context,惯用法。。。

从业务或领域对象中把一些规则独立出来,保证了规则和领域对象可以分别变化。例如:移动计费的套餐。

这样解决了一些规则变化频繁,同时与领域对象概念上不100% match的情况。

问题:可能会出现大量的Specification类,如何维护管理,需要进一步思考。

注意事项:发现网上有人拿这个模式和Query Object模式对比。同时拿组合查询做例子,个人感觉不是很确切。Query Object模式的应用很明确,而把查询组合作为Specification模式,感觉两种模式说的不在一个层面上。 同时解决组合查询手段很多,个人觉得自建一种small language更为灵活,方便