最近从多种不同渠道了解到DDD领域驱动设计,对复杂业务的设计具有特别好的效果,本人负责的是电商业务的交易系统,正好是很适合的。 那么应该怎么把当前数据库驱动设计切换DDD呢?
数据库设计驱动特点
- 一般分为Controller, Service和Repository
- 贫血模型:业务实体类一般都只有getter/setter,不包含任何业务逻辑
- 复杂的service:业务逻辑都分布在各个service中
切换
- service中的业务逻辑迁移到实体类(形成领域类),充血模型
- 远程调用怎么处理?
迁移到factory类,比如库存扣减等
- 多个实体类如何一起处理?比如订单表和订单商品表的写入
领域类是订单OrderDomain:下单操作后,可以生成两个实体类,分别是订单实体和商品列表实体
参考
- 设计模式之美:实战一(上):业务开发常用的基于贫血模型的MVC架构违背OOP吗?
- 如何开始DDD