文章目录

  • DDD整体架构
  • 领域建模
    • 领域模型
  • Repository模型
  • 参考资料

DDD整体架构

领域建模

领域模型

  • 领域:即你要解决的问题,核心需求。比如“购买一个商品”、“生产一个商品”等
  • 模型:对于某个过程或现象的抽象。比如说用“电压 = 电流 X 电阻”这个欧姆定律来描述电阻上的电流和电压的规律。
  • 一个领域模型包含:Entity、Value Object和Service。
    • Entity和VO都是具体的业务对象。
    • Entity(实体):具有特定‘标识’的对象,关注的是其标识,即使它的属性有所改变,它仍是原来的对象。
    • Value Object(值对象):一个包含属性的对象,更关注其不变的属性,当属性改变时,就是一个新的VO了。
    • Service(业务操作):与controller-service-dao中的service层含义不一样。这里的service描述的是一个以本领域模型为边界的过程。而service层中的service 层描述的是一个用例,service层会调用领域模型中的业务操作。
      • 这些业务操作没有必要上升成为一个对象,比如说FooManager、BarBuilder等,完全可以用manage_foo, bulid_bar来描述(当然用Java这种纯OOP的语言另说)。

Repository模型

  • 出现动机:希望存储能与领域模型分离开,领域模型不依赖底层存储的选择
  • 其实Repository层与Java三层中的DAO层的不同点在于,DAO模型往往被看作应用和DB之间网关,从而习惯性地将所有与DB的交互都放在同一个DAO类中,导致DAO过于肥大。而Repository则更倾向于作为一个“数据集合”开放给上层,提供最原始的CRUD。参考Don’t use DAO, use Repository

  • 如果业务只是简单的CRUD,其实没必要强行上DDD

参考资料

  • Repository

cosmic_python相关推荐

最新文章

  1. 550种Blender风格化笔刷素材
  2. c# 给文件/文件夹 管理用户权限
  3. java expextion_Java(20~24)
  4. SpringMVC 解决中文乱码的过滤器
  5. 机器学习——LightGBM
  6. [TimLinux] scrapy 在Windows平台的安装
  7. php 重定义数组k,PHP基础篇之数组
  8. 图片格式转换器ico_Pixillion——图片格式转换工具
  9. python爬取网易云音乐歌词_python3爬取网易云音乐歌单里的歌词(含源码)
  10. 二进制、十进制、十六进制数值对照表
  11. 跪了,腾讯数据工程师用Python可视化绘制的中国GDP数据地图,大佬就是不一样
  12. hspace在表格中无效吗html,HTML代码汇总详解
  13. 台式计算机没声音,台式电脑没声音了如何恢复 台式电脑忽然没声音
  14. REVIT模型空间句法分析
  15. 摄像头视频推流python_python中用FFmpeg向rtmp服务器推流,实现摄像头直播
  16. Blender基础:从程序员的角度理解顶点组(Vertex Group)和权重(Weight)
  17. tplogin服务器未响应,TP-Link路由器的管理页面打不开怎么办?
  18. 算法一 knn 扩展 BBF算法,在KD-tree上找KNN ( K-nearest neighbor)
  19. 移动数据和软件更新系统及方法
  20. 查询苹果硬件产品保修情况:

热门文章

  1. 【运维行业300问】如果要给运维新人几个建议,你会说什么?
  2. Vysor介绍及破解
  3. R语言subset函数
  4. 正则表达式入门-findall()函数
  5. 【kali】更新国内yum源
  6. iWatch的功能预测
  7. 全球与中国PMP微波回传系统市场深度研究分析报告
  8. 使用selenium模拟登陆,手机验证码
  9. python以字典初始化数据_Python 简明教程 ---12,Python 字典
  10. keil烧录hex文件