模型获取只是一方面,它的管理也是领域驱动设计的关键.具体的管理方式可以分为三部分:聚合,工厂,仓库.这也是它的生命周期管理.工厂用于模型的新建,聚合用于模型操作,仓库用于检索和持久化.
- 通过聚合来简化模型内部关联.
聚合(AGGREGATE):通过固定规则将互相关联的模型,整合为一个对外可识别的整体.以简化模型,简化数据一致性操作.如:订单就是商品,颜色,规格,库存等模型的聚合,对外你只需创建和维护订单,不用关心具体的聚合情况.
- 通过工厂来降低模型耦合性.
工厂(FACTORY):当类似聚合的对象创建时,因为存在多个对象之间的关联,通过工厂来创建这些对象,可以有效的封装关联造成的复杂性.对外接口工厂可以进一步增加对象创建的扩展性.
如:订单类的创建,它是一个聚合根,在这个聚合之内的还有颜色,规格,库存等对象需要一起创建,通过订单工厂就可以简化订单的创建过程.
- 通过仓库来查询数据.
仓库(REPOSITORY):对已有数据存储,查询和变更操作进行封装.维护数据的一致性.现在为了保持领域模型和数据库模型的一致性,都会将领域模型设计并入数据库模型设计中,以求达到设计和开发的统一.