REPOSITORY模式是一个简单的概念框架,用于封装这些解决方案并带回我们的模型重点。
存储库将某种类型的所有对象表示为概念集(通常是模拟的)。除了具有更复杂的查询功能外,它的作用类似于集合。添加和删除了适当类型的对象,并且REPOSITORY背后的机器将其插入或从数据库中删除。该定义收集了一系列有凝聚力的职责,以提供从早期生命周期到末期访问AGGREGATES根源的权限。
客户端使用查询方法从存储库请求对象,查询方法根据客户端指定的条件(通常是某些属性的值)选择对象。REPOSITORY检索请求的对象,封装数据库查询和元数据映射的机制。资源库可以实现各种查询,这些查询根据客户端要求的条件选择对象。他们还可以返回摘要信息,例如满足某些条件的实例数。他们甚至可以返回汇总计算,例如某个数字属性的所有匹配对象的总计。
一个资源库减轻了客户的负担,客户现在可以与一个简单的意图披露界面进行对话,并询问其在模型方面的需求。为了支持所有这些,需要大量复杂的技术基础架构,但是接口很简单,并且在概念上与域模型相连。
因此:
对于需要全局访问的每种对象类型,创建一个对象,该对象可以提供该类型所有对象的内存中集合的错觉。通过众所周知的全局界面设置访问权限。
提供添加和删除对象的方法,这些方法将封装数据存储中实际插入或删除的数据。提供基于某些条件选择对象并返回完全实例化的对象或属性值符合条件的对象集合的方法,从而封装实际的存储和查询技术。仅为实际需要直接访问的AGGREGATE根提供存储库。让客户专注于模型,委派所有对象存储和对存储库的访问。