【阅读笔记】《一个微服务+DDD(领域驱动设计)的代码结构示例》

博客园文章 《一个微服务+DDD(领域驱动设计)的代码结构示例》


DDD分层

Infrastructure 基础实施层

  • 最底层,但与所有应用交互
  • 为各应用提供各种通用技术能力
    • 工具类
    • 第三方库支持
    • 常用基本配置
    • 数据访问底层实现
  • 为应用层传递通知
  • 为领域层提供持久化机智
  • 为用户界面层提供组件配置

Domain 领域层

  • 主要负责表达业务概念,业务状态信息和业务规则
  • 是整个系统的核心层,几乎全部的业务逻辑会在该层实现
  • 内容:
    • 实体
    • 值对象
    • 领域服务
    • 聚合、聚合根(划分边界)
      • 聚合:指具有内聚关系的相关对象集合
      • 聚合根:每一个领域都有一个聚合根
    • 工厂、仓储

Application 应用层

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

Interface 用户界面层(表示层)

  • 负责向用户显示信息和解释用户命令
  • 请求应用层以获取用户所需要展现的数据
    • 比如获取首页的商品数据
  • 发送命令给应用层,执行某些任务
  • 内容:
    • Dto 数据传输对象(隔离内部领域对象)
    • Assembler 装配
      • 实现领域对象与数据传输对象的转换
    • Facade 表面、门面
      • 为远程客户端提供粗粒度的服务调用接口
      • 将用户请求委派给一个或多个Service处理
posted @ 2021-09-11 22:07  wosperry  阅读(433)  评论(0编辑  收藏  举报