第二部分第二篇关于第二部分剩余部分,包括Module,Aggregate,Factory,Repository.
Module作为一种粗粒度的建模和设计元素,在Module内部应该是高内聚的,Module之间应该是低耦合的。系统的领域模型通常可以分为几个Module,比如电子商务的领域就可以大致分为商品,订单,促销,支付,库存等Module。
Aggregate通过定义清晰的所属关系和边界,并避免混乱,错综复杂的对象关系网来实现模型的内聚。Aggregate就是一组相关对象的集合,作为数据修改的单元。每一个Aggregate具有一个Aggregate root和boundary。Aggregate root作为一个特定的Entity,root是唯一允许外界对象保持对它的引用的元素。boundary内部的对象和互相引用。在Aggregate内部除root以外的entity都具有本地标识,本地标识只在内部加以区分。因为外部对象看不到除root以为的对象。root可以将Aggregate内部的对象引用传递给其他对象,其他对象只能暂时的引用。对于boundary内部的Value Object,根可以创建一个副本传递给外界对象,就可以不管了。Aggregate内部只有root能通过数据库直接访问,其他对象只能通过遍历方式得到。
Factory在领域模型中,作为装配Entity,Value Object的对象存在,它承担创建这些对象和聚合的职责,创建Aggregate时作为一个整体,并满足这个Aggregate的固定规则。在使用Factory模式时有几种选择,对于复杂对象的装配可以在合适的位置创建Factory Method,某个Aggregate的root上或者一个Aggregate与另一个Aggregate的交界处如下图所示。
在找不到合适的位置放置factory method时,就需要单独创建一个Factory类。对于一些简单不涉及到其他对象的创建和多态性的使用构造函数无疑要简化许多。在设计到Aggregate的创建时,就不能使用构造函数。
大部分对象都不能通过全局查询来访问,不受限制的数据库查询实际上会破坏领域对象和Aggregate的封装。通过将实际的存储和查询封装至Repository对象中,隐藏实现细节。只为需要直接访问Aggregate root的Entity提供Repository,让客户始终聚焦于模型。
Repository的优点:
<!--[if !supportLists]-->1. <!--[endif]-->应用程序和领域设计与持久化技术解耦;
实现一个Repository的基本特性如下图所示:
Repository和Factory的关系:
Factory是将创建一个复杂对象的复杂过程封装起来,用于创建新对象。而Repository是在内存中或者数据库中查找已有对象(可以使用ORM,Query Object等模式)。
相关推荐
《技术人的管理之路》读书笔记 --思维导图 《技术人的管理之路》读书笔记 --思维导图 《技术人的管理之路》读书笔记 --思维导图 《技术人的管理之路》读书笔记 --思维导图 《技术人的管理之路》读书笔记 --思维导图 ...
学生读书笔记共享-学生读书笔记共享系统-学生读书笔记共享系统源码-学生读书笔记共享管理系统-学生读书笔记共享管理系统java代码-学生读书笔记共享系统设计与实现-基于springboot的学生读书笔记共享系统-基于Web的...
《学会提问》读书笔记-秋叶、《学会提问》读书笔记-秋叶、《学会提问》读书笔记-秋叶、《学会提问》读书笔记-秋叶、《学会提问》读书笔记-秋叶、《学会提问》读书笔记-秋叶
《计算机系统概论》读书笔记-第2章-bit、数据类型机器运算.doc
读书笔记----ARM汇编_编程.zip
计算机网络设计第一章读书笔记------.pdf该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
学生读书笔记共享-学生读书笔记共享系统-学生读书笔记共享系统源码-学生读书笔记共享管理系统-学生读书笔记共享管理系统java代码-学生读书笔记共享系统设计与实现-基于springboot的学生读书笔记共享系统-基于Web的...
带书签_Python 学习笔记-雨痕-第二版,本笔记分为三个部分(Python语言、标准库和扩展库)以及附录。其中,Python语言部分包括基本环境、内置类型、表达式、函数、迭代器、模块、类、异常、装饰器、描述符和元类。 ...
开发资料技术资料读书笔记----ARM汇编_编程非常好的技术资料.zip
CAD实训读书笔记-应用文.pdf
读书笔记-新产品开发.pptx
读书笔记:实现领域驱动设计
读书笔记-电阻型电流传感器小结
《LINUX与UNIX SHELL编程指南》读书笔记-二次发布版.pdf
spring3.x的读书笔记-7
【经营】图解《经营战略全史》:一部跨越百年的经营战略理念集结之作-读书笔记-118页.pdf