DDD 领域驱动设计概念梳理
2022-04-08 17:04:28 0 举报
DDD 探索
作者其他创作
大纲/内容
业务支撑域
EntityObject
方法
建模
1、为什么要学DDD(DDD 作用)? 1.1 设计层:提升抽象和建模能力,DDD 系统的讲述了如何将现实世界中的概念 抽象为 模型(Medol). 1.2 代码层:编写层次明确,业务模型清晰的代码,易维护易拓展的代码。DDD 中 领域对象的概念对应 OOP 类。2、DDD 需要的基础知识? 2.1 OOP ,UML。3、一句话概括DDD? 3.1 DDD 是一套软件设计开发思想,用来指导软件工程师开发出一个能够把领域概念表达出来的有效实现。 模型表达现实。
1、领域中常用且不适合归属于某领域对象 的操作
Factory-工厂
1、DDD 和 MDD 是区别?2、充血模型-模型驱动,和贫血模型-数据处理过程驱动区别?3、DDD和编码有什么关系?4、通用语言,Ubiquitous languge 是什么? 团队的认知沟通基础5、DDD中涉及的几种角色的含义? 领域专家---->开发
应用层
Entity(实体对象)
命令
落地实践
领域
子域
原则
ValueObject
架构
代码分层
Service(领域服务)
数据(DataObject)
界限上下文
1、包装复杂领域对象或聚合的构造逻辑
用户界面层
(应用)微服务
属性
值对象除构造和销毁方法外原则上只包含函数。常见只对象:颜色、位置、金额
完整系统
Repositry-仓储
依赖传递关系控制
领域对象1、无身份标识,可替换,关注点是值数据2、使用场景 参数、属性
ValueObject(值对象)
1、领域对象持久化和加载2、从系统角度看对象持久化之后任然处于生命周期过程中,只是位置从内存变成了数据库
影响系统状态的操作
DomainObject
明确领域之间的依赖关系
领域层
模型驱动
命名规范
函数
处理逻辑(方法层层嵌套)
数据驱动
核心域?
设计
编码
查询
子子域
边界划分,分清域内 和域外
构造器
1、层次界限分明2、高内聚低耦合3、面向接口
工具
Service
不适合被建模为对象的领域概念
南北向防腐
....
承载数据
由领域模型组成的一个整体,提供一个通用的对外接口-聚合根
AggreGate(聚合)
领域对象1、有身份标识和生命周期的对象(订单)
基础设施层
1、数据和逻辑分离缺点:代码累积的多了,业务逻辑梳理将十分困难,变更也困难。
基于参数的计算方法,没有副作用
基础设施分离
通用服务域
模型
收藏
收藏
0 条评论
下一页