172 Star 2.3K Fork 1.2K

zhengqingya/java-workspace

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

DDD

学习资源


interface -> application -> domain -> infrastructure

  • interface 用户接口层/展示层:http、消息队列、定时任务等
  • application 应用层:协调业务逻辑。该层不包含业务领域知识。
  • domain 领域层/模型层:核心业务规则与实体
    • 实体(Entities):具有唯一标识的对象
    • 值对象(Value Objects): 无需唯一标识
    • 领域服务(Domain Services): 一些行为无法归类到实体对象或值对象上,本质是一些操作,而非事物
    • 聚合/聚合根(Aggregates & Aggregate Roots): 聚合是指一组具有内聚关系的相关对象的集合,每个聚合都有一个root和boundary
    • 工厂(Factories): 创建复杂对象,隐藏创建细节
    • 仓储(Repository): 提供查找和持久化对象的方法
  • infrastructure 基础设施层:数据库、缓存等

分层作用

分层 英文 描述
表现层 User Interface 用户界面层,或者表现层,负责向用户显示解释用户命令
应用层 Application Layer 定义软件要完成的任务,并且指挥协调领域对象进行不同的操作。该层不包含业务领域知识。
领域层 Domain Layer 或称为模型层,系统的核心,负责表达业务概念,业务状态信息以及业务规则。即包含了该领域(问题域)所有复杂的业务知识抽象和规则定义。该层主要精力要放在领域对象分析上,可以从实体,值对象,聚合(聚合根),领域服务,领域事件,仓储,工厂等方面入手
基础设施层 Infrastructure Layer 主要有2方面内容,一是为领域模型提供持久化机制,当软件需要持久化能力时候才需要进行规划;一是对其他层提供通用的技术支持能力,如消息通信,通用工具,配置等的实现;

领域对象

类型 英文 描述
值对象 value object 无唯一标识的简单对象
实体 entity 充血的领域模型,有唯一标识
聚合(聚合根) aggregate 实体的聚合,拥有聚合根,可为某一个实体
领域服务 service 无法归类到某个具体领域模型的行为
领域事件 event 不常用
仓储 repository 持久化相关,与基础设施层关联
工厂 factory 负责复杂对象创建
模块 module 子模块引入,可以理解为子域划分
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/zhengqingya/java-workspace.git
git@gitee.com:zhengqingya/java-workspace.git
zhengqingya
java-workspace
java-workspace
master

搜索帮助