3个模式将处理不同的建模挑战,它们跟领域对象的生 命周期相关
聚合是一个用来定义对象所有权和边界的领域模式。工厂和资源库,用来帮助我们处理对象的创建和存储问题。
聚合
许多对象会跟其他的对象发生关联,形成了一个复杂的关系网。使得对这样的对象的生命周期管理变得困难。聚合是针对数据变化可以考虑成一个单元的一组相关的对象。聚合使用边界将内部和外部的对象划分开来。每个聚合有一个根。这个根是一个实体,并且它是外部可以访问的唯一的对象。根可以保持对任意聚合对象的引用,并且其他的对象可以持有任意其他的对象,但一个外部对象只能持有根对象的引用。对象可能将内部的临时引用传递给外部对象,作为限制,当操作完成后,外部对象不能再持有这个引用。因为根控制了访问,将不能盲目对内部对象进行变更。
工厂
工厂用来封装对象创建所必需的知识,它们对创建聚合特别有用。当聚合的根建立时,所有聚合包含的对象将随之建立,所有的不变量得到了强化。将创建过程原子化非常重要。工厂方法是一个对象的方法,包含并隐藏了必要的创建其他对象的知识。
资源库
使用一个资源库,它的目的是封装所有获取对象引用所需的逻辑。一个对象被创建出来时,它可以被保存到资源库中,然后以后使用时可从资源库中检索到。资源库可能包含用来访问基础设施的细节信息,但它的接口应非常简单。工厂关注的是对象的创建,而资源库关心的是已经存在的对象