0
点赞
收藏
分享

微信扫一扫

领域驱动模型(DDD)总结

1. DDD总体结构分为四层:

  • Infrastructure(基础实施层)
  • Domain(领域层)
  • Application(应用层)
  • Interfaces(表示层,也叫用户界面层或是接口层),各个层面的作用下面介绍。

2. DDD: application 应用层

  • 相对于领域层,应用层是很薄的一层,应用层定义了软件要完成的任务,要尽量简单.
  • 它不包含任务业务规则或知识, 为下一层的领域对象协助任务、委托工作。
  • 它没有反映业务情况的状态,但它可以具有反映用户或程序的某个任务的进展状态。
  • 对外为展现层提供各种应用功能(service)。
  • 对内调用领域层(领域对象或领域服务)完成各种业务逻辑任务(task)。
  • 这一层也很适合写一些任务处理,日志监控

3. DDD: domain 领域层

领域模型层主要包含以下的内容:

  • 实体(Entities):具有唯一标识的对象
  • 值对象(Value Objects): 无需唯一标识的对象
  • 领域服务(Domain Services): 一些行为无法归类到实体对象或值对象上,本质是一些操作,而非事物
  • 聚合/聚合根(Aggregates,Aggregate Roots): 聚合是指一组具有内聚关系的相关对象的集合,每个聚合都有一个root和boundary
  • 工厂(Factories): 创建复杂对象,隐藏创建细节
  • 仓储(Repository): 提供查找和持久化对象的方法

4. DDD: infrastructure 基础实施层

基础实施层主要包含以下的内容:

  • 为应用层 传递消息(比如通知)
  • 为领域层 提供持久化机制(最底层的实现)
  • 为用户界面层 提供组件配置
  • 基础设施层还能够通过架构框架来支持四个层次间的交互模式。

5. DDD: interfaces 用户界面层(或表示层)

用户界面层应该包含以下的内容:

  • 数据传输对象(Data Transfer Object): DTO也常被称作值对象,VO,实质上与领域层的VO并不相同
  • DTO是数据传输的载体,内部不应该存在任何业务逻辑,通过DTO把内部的领域对象与外界隔离。
  • 装配(Assembler): 实现DTO与领域对象之间的相互转换,数据交换,因此Assembler几乎总是同DTO一起出现。
  • 表面,门面(Facade): Façade的用意在于为远程客户端提供粗粒度的调用接口
  • 它的主要工作就是将一个用户请求委派给一个或多个Service进行处理,也就是我们常说的Controller。

文末

举报

相关推荐

0 条评论