已解决
Java 领域模型之失血、贫血、充血、胀血模型
来自网友在路上 186886提问 提问时间:2023-10-19 12:05:29阅读次数: 86
最佳答案 问答题库868位专家为你答疑解惑
1.失血模型
失血模型仅仅包含数据的定义和getter/setter方法,业务逻辑和应用逻辑都放到服务层中。这种类在Java中叫POJO。
action
service: 核心业务(复杂度:重)
model:简单Set Get
dao :数据持久化
@Setter
@Getter
public class Commodity {private Long commodityId;private String commodityName;}@Setter
@Getter
public class Order {private Long orderId;private Long commodityId;private Date createTime;}
2.贫血模型
贫血模型中包含了一些业务逻辑,但不包含依赖持久层的业务逻辑。这部分依赖于持久层的业务逻辑将会放到服务层中。
action
service :简单服务组合、事务管理(复杂度:中)
model:Set Get的基础上添加简单逻辑处理(复杂度:中)
dao:数据持久化
@Setter
@Getter
public class Commodity {private Long commodityId;private String commodityName;}@Setter
@Getter
public class Order {private Long orderId;private Long commodityId;private Commodity commodity;private Date createTime;public Order(Commodity commodity) {this.commodity = commodity;}}public class OrderService {@Resourceprivate OrderMapper orderMapper;@Resourceprivate CommodityMapper commodityMapper;public Order getOrderById(Long orderId) {Order order = orderMapper.getById(orderId);order.setCommodity(commodityMapper.getById(order.getCommodityId()));return order;}}
3.充血模型
充血模型中包含了所有的业务逻辑,包括依赖于持久层的业务逻辑。使用充血模型的领域层是依赖于持久层。
action
service :简单服务、事务管理(复杂度:中-)
model:Set Get的基础上添加复杂逻辑处理(复杂度:中+)
@Setter
@Getter
public class Commodity {private Long commodityId;private String commodityName;}@Setter
@Getter
public class Order {private Long orderId;private Long commodityId;private Commodity commodity;private Date createTime;@Resourceprivate CommodityMapper commodityMapper;public Commodity getCommodity() {return commodityMapper.getById(this.commodityId);}}public class OrderService {@Resourceprivate OrderMapper orderMapper;public Order getOrderById(Long orderId) {return orderMapper.getById(orderId);}
}
4.胀血模型
胀血模型就是把和业务逻辑不想关的其他应用逻辑(如授权、事务等)都放到领域模型中。
action
model:Set Get的基础上添加复杂逻辑处理、事务处理(复杂度:重+)
查看全文
99%的人还看了
相似问题
- 人工智能基础_机器学习044_使用逻辑回归模型计算逻辑回归概率_以及_逻辑回归代码实现与手动计算概率对比---人工智能工作笔记0084
- 【机器学习】 逻辑回归算法:原理、精确率、召回率、实例应用(癌症病例预测)
- 人工智能基础_机器学习046_OVR模型多分类器的使用_逻辑回归OVR建模与概率预测---人工智能工作笔记0086
- LeetCode47-全排列II-剪枝逻辑
- 论文导读 | 大语言模型与知识图谱复杂逻辑推理
- 逻辑漏洞(越权)
- 人工智能基础_机器学习044_逻辑回归代码实现与手动计算概率---人工智能工作笔记0084
- 微信小程序云开发 微信支付功能 逻辑+踩坑
- 代码逻辑修复与其他爬虫ip库的应用
- WPF中可视化树和逻辑树的区别是什么
猜你感兴趣
版权申明
本文"Java 领域模型之失血、贫血、充血、胀血模型":http://eshow365.cn/6-19693-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!