DDD domain driven Design 领域驱动设计

DDD  domain driven Design 领域驱动设计

尝试通过其自有的原则与套路啦解决软件复杂性问题,它将RD的目光汇集到业务本身,使技术架构和代码实现成为软件架构过程中的副产品。

DDD分为战略设计和战术设计

战略设计:划分结界上下文。可以一句话概括,模块化

战术设计:偏编码实现。用oo原则。

实现业务的Order的三种情况:Sample

1.基于Service+贫血模式

@Transactional
 

public void changeProductCount(String ID,*)

Order order =DAO.findByid(id);

if (Order.getStatus()==NoModited){

       throw new OrderCannotModifiedException(id);

}

//todo
...
DAO.saveOrUpdate(order);

这种是面向过程编程的编程方法,另外是问题权责划分不清楚,本来应该内聚的Order中的业务逻辑泄露到其他的地方OrderService,导致Order成为一个只是当数据容器的贫血模型,而非真正的领域模型。

在项目中业务逻辑会分散到不同的Service中。最终结果是代码变的越来越不好理解而且丧失扩展能力。

2.基于事务脚本实现

3.基于领域对象的实现

 

你可能感兴趣的:(自动化测试)