DDD 抽象概念清晰定义
战略建模
-
域 限界上下文 映射方式:更详细的描述请看<实现领域驱动设计> 第3章,80 页 合作关系(Partnership):两个上下文紧密合作的关系,一荣俱荣,一损俱损。 共享内核(Shared Kernel):两个上下文依赖部分共享的模型。 客户方-供应方开发(Customer-Supplier Development):上下文之间有组织的上下游依赖。 遵奉者(Conformist):下游上下文只能盲目依赖上游上下文。 防腐层(Anticorruption Layer):一个上下文通过一些适配和转换与另一个上下文交互。 https://docs.microsoft.com/en-us/azure/architecture/patterns/anti-corruption-layer http://wiki.c2.com/?AnticorruptionLayer 开放主机服务(Open Host Service):定义一种协议来让其他上下文来对本上下文进行访问。 发布语言(Published Language):通常与OHS一起使用,用于定义开放主机的协议。 大泥球(Big Ball of Mud):混杂在一起的上下文关系,边界不清晰。 另谋他路(SeparateWay):两个完全没有任何联系的上下文。
战术建模
-
基本概念 实体: Entity 定义: 值对象: Value Object 定义: 聚合: Aggregate 定义: 包含 一个或多个 [实体,值对象] 的事务边界 例子 一个删除订单操作,会把订单和相关订单项删除. 聚合根: Aggregate Root 定义 聚合只能通过聚合根向外暴露功能,即只能通过聚合根这个类的方法,对外提供聚合内其它类的功能. 领域服务: Domain Service 定义 作用 跨聚合的操作,应放在领域服务 当某个操作不适合放在 聚合 或 值对象时 应用服务: 应用程序,Application Service 定义 资源库: 仓储,Repository 定义 Repository is a storage repository for resources and shields the underlying persistence technology from the outside. 其它概念 领域模型 定义 Unit Of Work: uow 定义 https://martinfowler.com/eaaCatalog/unitOfWork.html https://www.codeproject.com/Articles/581487/Unit-of-Work-Design-Pattern 场景 The unit of work class serves one purpose: to make sure that when you use multiple repositories, they share a single database context. 防腐层(ACL) 作用: 将子域内的模型与子域外的模型进行转换,保证子域内的模型不被外部腐蚀
===================================================== figure 1: 多子域.子域间的上下文映射,可通过防腐层(ACL)等映射方式. figure 2: 单个子域,六边形架构(实战中,清晰架构表达得更好一些) 分层调用顺序
https://www.mirkosertic.de/blog/2013/04/domain-driven-design-example/ https://docs.axoniq.io/reference-guide/architecture-overview/ddd-cqrs-concepts https://iopscience.iop.org/article/10.1088/1742-6596/1168/5/052028/meta
上一篇:
IDEA上Java项目控制台中文乱码