DDD案例分析

领域层级划分

一般分为这各个层view,service,domain,dao,entity,infrastructure,第三方库libs/Utils

Dao(数据库访问,对数据库的增删改查,不涉及业务逻辑, Dao在数据库和业务逻辑(Service)之间)

Service

主要是业务逻辑,只考虑逻辑上的业务,不考虑具体的实现,如果需要数据库操作通过Dao层实现。

Domains层

主要处理业务逻辑,以及比较偏底层的一些业务处理。

Entity层

放置一个实体以及对应的set/get方法,如果需要对数据库进行一些操作就要写entity层。

Utils层

工具类层,通用的、与业务无关的,可以独立出来,可供其他项目使用。

View层

主要放用户界面类

Service层

Service就是用户业务,在最上层,主要表现为用户的一些操作集合,比如说打开文件,数据标记等等

Service调用domains层。Domians层处理一些负责的业务逻辑。

Domains层调用Dao,Dao调用数据库。
 

Service对应业务领域(每一个业务领域都可以划分类几个子域,而domains中放的就是对应的子域(包括核心域,支撑域,通用域))

Domains就支撑了上次Service的运行

Entity层就对应了最小实体, 聚合根,值对象等。

Uitls就是共用的一些库等。

Infrastructure:如果涉及到硬件数据读取,就在基础设置层中去实现,这是在DAO的更底下的一层。

Context层确定了每一个域或者实体之间的关系。(它代表了域和域之间的联系。)(BoundContext)

DDD只是粗略等对业务进行分类分层,具体的实现还会设计许多的东西。向域和域之间的通信,业务的抽象等等,还需要根据实际的业务和产品中的问题来处理。

Service层和view层一般是平级的

案例是一个经典的电商系统:

业务功能包含用户管理,商品管理,订单管理等核心功能。

第一步:领域划分:

基于上面三个业务功能:划分为三个子域,

  1. 用户服务(user service):负责注册,登录,个人信息管理等。
  2. 商品服务(product service):负责商品信息管理,架构更新等。
  3. 订单服务(order service):负责订单的创建,取消,查询等。

第二部:领域建模

通过各个域的子对象各自的属性以及他们之间的活动来支撑这个功能的正常运转就是建模。

第三步:接口设计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值