当前位置:  开发笔记 > 编程语言 > 正文

查询对象和规范模式之间的差异

如何解决《查询对象和规范模式之间的差异》经验,为你挑选了1个好方法。

Martin Fowler提出的查询对象模式与Eric Evans提出的规范模式有什么区别?



1> Dave Schweis..:

查询对象

Fowler的查询对象模式(企业应用程序体系结构模式,第316页)是Interpreter模式的一种特殊化,它允许以域语言呈现数据库查询.一个主要来自福勒的例子:

QueryObject query = new QueryObject(Person.class);
query.addCriteria(Criteria.greaterThan("numberOfDependents", 0))
List persons = query.execute(unitOfWork);

在Java持久性API标准API和Rails的ActiveRecord的查询界面是这种模式的例子.

规格

Evans的规范模式(Domain-Driven Design p.224)将业务规则实现为表示另一个对象,实体或值对象的谓词的对象.Evans的例子是一个InvoiceDelinquency带有布尔方法的对象,test(Invoice)如果Invoice是拖欠的话,它返回true .规范可用于以下几个方面:验证对象,查询集合或指定如何创建新对象.

区别

规范与作为查询对象模式一部分的Criteria类基本相同.查询对象描述并不意味着Criteria具有除指定查询之外的任何其他目的,但如果您在同一程序中使用这两种模式,则您当然希望将规范用作查询对象的标准.

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有