1.失血模型

数据对象中只有只有属性和set和get方法,业务逻辑层里包含了几乎所有的逻辑,不重要几乎不用

特点:对象中只包含get set方法

优点:领域对象结构简单

缺点:1.肿胀的业务逻辑代码,难以维护

2.无法应对频繁更改的需求

2.贫血模型

数据对象在失血模型中的数据对象的基础上添加固有行为

固有行为:可以理解为本能行为,如睡觉吃饭走路等,正常人都拥有这种行为。

非固有行为:如打游戏、识别文字,都是一些后天的行为,部分人才有

优点:层次结构清晰,各层级单向依赖

对只有少量业务逻辑的应用来说,使用起来非常自然

缺点:无法良好的应对非常复杂的逻辑和场景

这种模型是Spring一致引领的方向,所以非常的流行用途极广

3.充血模型

更加符合面相对象的设计

其实它是没有单独持久层的,持久化的逻辑放在领域对象当中

所以上面的图我们也可以改为:

数据对象和业务逻辑是平行逻辑

优点:1.更加符合面相对象的原则

2.业务逻辑层很薄,薄到几乎完全符合单一职责原则

缺点:1.职责不好划分(无专门的持久层),要求开发者水平要很高

2.模型中包含了大量的操作,实例化的时候增加很多不必要的消耗,会实例化很多的关联对象

4.胀血模型

优点:1.简化了分层架构

2.也算是符合面向对象的设计原则

缺点:1.取消了业务逻辑层,直接在domain Object(领域对象)上封装事务以及授权,授权很多原本不属于这个领域对象的逻辑,模型不稳定,代码缺乏可维护的稳定性

DDD-四种业务模型相关推荐

  1. 无监督学习:从基本概念到四种实现模型

    http://www.sohu.com/a/117638113_465975 这是今年 6 月份普渡大学副教授 Eugenio Culurciello 写的一篇关于无监督学习的概述性文章.除了基本概念 ...

  2. 深度 | 一篇文章带你进入无监督学习:从基本概念到四种实现模型(附论文)

    作者:Eugenio Culurciello 机器之心编译 参与:李亚洲.武竞 微信公众号:(almosthuman2014)授权转载,禁止二次转载,点此为原文链接 这是今年 6 月份普渡大学副教授 ...

  3. Sharepoin学习笔记—架构系列--04 Sharepoint的四种执行模型 1

    Sharepoint210有四种执行模型 1.完全信任执行模型(Full Trust) 2.Bin/CAS 执行模型 (1与2都属于场解决方案) 3.沙盒执行模型(Sand Box) 4. 混合执行方 ...

  4. 云计算的五个基本特征、四种部署模型和三种服务模式

    五个基本特征 自助服务 使用者可以按需要获取云端的计算资源 广泛的网络访问 使用者可以随时随地使用云终端设备接入网络并使用云端的计算资源. 资源池化 计算资源汇集在一起,形成一个个CPU池.内存池等, ...

  5. 云计算的五个基本特征、三种服务模式、四种部署模型

    云 计算 具有 5 个 基本 特征. 4 种 部署 模型 和 3 种 服务 模式. 云 计算 的 5 个 基本 特征 如下: (1) 自助 服务. 消费者 不需要 或 很少 需要 云 服务 提供 商 ...

  6. 云计算三种服务模式举例_云计算的三种服务模式和四种部署模型

    云计算技术都是基于3种特殊的云计算服务模式,它们都具有流行.有效.灵活.用户友好等特征.因此,云架构的基本模式是:本文引用地址:http://www.eepw.com.cn/article/20171 ...

  7. 云计算服务的四种部署模型

    云计算服务的四种部署模型包括: 云端部署:所有资源和服务都在云端运行. 混合部署:部分资源和服务在本地,部分在云端. 分布式部署:资源和服务分布在多个地点. 私有云部署:资源和服务都在企业内部运行,不 ...

  8. 解读人生的四种汉堡模型

    解读人生的四种汉堡模型 自然界给了每一个人幸福的机会,人们都知道,却不知如何得到它. --克劳狄 年度最重要的壁球赛就要临近了.我每天的训练已经极度艰苦,同时还要严格控制饮食.尽管我的饮食习惯已经相当 ...

  9. 11 | DDD实践:如何用DDD重构中台业务模型

    11 | DDD实践:如何用DDD重构中台业务模型 Reference DDD实战课

  10. 架构设计之三种业务模型:活动资源模型、契约模型、模板模型

    欢迎大家关注公众号「JAVA前线」查看更多精彩分享文章,主要包括源码分析.实际应用.架构思维.职场分享.产品思考等等,同时欢迎大家加我个人微信「java_front」一起交流学习 1 文章概述 在实际 ...

最新文章

  1. win10安装JDK cmd中可以运行java,但不能用javac,解决方案
  2. spingmvc-参数传递
  3. (不误正业)鼓励做题的时间陷阱
  4. jmeter无法释放oracle连接,jmeter 连接ORACLE数据库错误及解决方法
  5. 总结PLSQL的快捷键以及使用技巧
  6. OpenGL+VS2013+WIN7(64)组态
  7. 推荐一款比较不错实用的在线文本比较工具
  8. 41-【JS编程接口】DOM事件与事件委托
  9. VUE3模板,JSX,JSV
  10. SQL 查询的分布式执行与调度
  11. 正则表达式(RegExp)
  12. 利用Python提取视频中的字幕(文字识别)
  13. Oracle 的汉译名 甲骨文 由来
  14. c语言静态两个数码管显示0-99,按键控制计数,用两个数码管显示0到99。十位数为0的时候,显示为空白...
  15. 江西耐高温水稻技术 国稻种·中国水稻节:赣鄱沃野成就画卷
  16. 计算机原理与结构 实验3《单周期微处理器设计》
  17. 考研阅卷大揭秘!这些“内幕”你知道吗?
  18. IDEA2021启动报错Your JRE: 11.0.10+9-b1341.41 amd64 (JetBrains s.r.o.)\jbr libpng warning: iCCP: cHRM
  19. java计算机毕业设计ssm驾校预约考试管理系统a3cf7(附源码、数据库)
  20. Vue实现视频播放列表(一)——video.js组件的使用

热门文章

  1. Android 对话框(Dialog)
  2. 2022年深圳市专精特新中小企业认定标准、材料清单
  3. struts2 拦截器和过滤器理解
  4. 瑞盟视频数模转换器MS2502-适合于数字电视、电脑视频处理及雷达信号处理等数字视频应用
  5. win10 JDK17安装及环境变量配置
  6. 对比excel轻松学python_对的英文_对翻译_对英语怎么说_海词词典
  7. 竞价账户时好时坏怎样分析找到原因?
  8. 渠道SDK接入的各种坑
  9. 【python制作小游戏】大鼻子马里奥等你来挑战,还原度超高哦~
  10. Cadence 17.4 学习手册----PCB封装的制作