目录

领域驱动设计实现

目录

值对象(Value Object)

即没有唯一标识 id 的对象,例如颜色,长短,价格

实体

有唯一标识的对象,比如某个用户,某个商品。但是用户的高矮,胖瘦;商品的颜色,尺寸,价格就是值对象。

领域服务(领域对象 domain object)

领域服务是没有任何属性(无状态)的对象,只有方法,这些方法仅描述如何解决领域问题。

领域对象的创建,使用工厂来创建。

聚合

聚合根

聚合根之间的通信,使用事件。

领域模型的目标:让技术复杂性和业务复杂性分割开,那么如何分割开呢?我们将领域模型划分到领域层,底层技术实现划分到基础层。

分层

操作
用户接口层
应用层
领域层
基础设施层 数据驱动,Mapper,DTO,PO

疑惑

  • 你以为分层后,能避免耦合,不会跨层调用

错,DDD 分层后,上层可以跨层调用下层。是不是有点晕了,这其实也是为了灵活和变通。

/images/584866-20211011144310357-948628155.jpg

举个例子:

需要你输出一个接口,返回配置表的数据。我认为你应该是在controller直接查库返回,而不是再封装一个daoservice

灵活高效,特事特办。

/images/format,png.png

分层

/images/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpZ25pZmljYW50ZnJhbms=,size_16,color_FFFFFF,t_70.png