我之前一直对领域驱动设计(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 Status