我之前一直对领域驱动设计(DDD)相关的知识有零散的认识,没有系统性地学习过。最近抽空系统地学习了一下,发现这块知识比较抽象,很难读懂。加上我自己的理解,我整理了一些知识,希望能够分享给大家
第一期先讲些了DDD的一些基础概念
充血模型
在我们以往的开发模式中,Model 对象通常只包含属性变量和 get/set 方法,这种模式被称为“贫血模型”。举个例子,比如订单的作废方法,在传统的做法中,我们会在 Service 层编写业务逻辑,如下所示:
@Data
class Order {
private Long id;
private Date cancelDate;
private Integer Status;
}
@Service
class OrderService {
// 传统写法,service臃肿
public void cancel(Long id) {
Order order = new Order(id);
order.setCancelTime(new Date());
order.setStatus(StatusEnum.CANCELED.getCode());
orderDAO.update(order);
}
}
如果我们使用充血模型进行改造
@Data
class Order {
private Long id;
private Date cancelDate;
private Integer

本文介绍了领域驱动设计(DDD)的基本概念,包括充血模型的优势,实体与值对象的区别,聚合、聚合根和边界上下文的概念,资源库的作用,防腐层的设计以及领域事件的应用。通过实例讲解,帮助读者理解DDD在实际开发中的应用。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



