说道DDD不得不说传统的架构与DDD的架构区别。数据库
传统的架构不外乎就是三层,而在这三层里面又不断的细分,始终没有达到想要的效果,那么为何当时仍是采用三层。架构
固然在DDD没有提出的时候三层是大多数人的选择。学习
那么当领域驱动被提出来的时候它又能带给咱们什么样的好处??spa
近期博主看了一下dax.net大佬有关DDD的文章,这里提出本身的一些心得,本着共同窗习的精神一块儿进步。.net
我也来讲说领域模型 |
1.为何叫领域模型?设计
首先传统的模型(这里指的只具有getter 和 setter)不包含其余业务逻辑泛指没有具体的功能这种模型咱们称为失血(贫血)模式。对象
而后才是具有有业务的模型除了getter 和setter 外还有其余的业务逻辑包含在里面,好比说我有一个购物车,购物车内有5件商品,每件商品价值20元,那么在销售订单的时候能够这样写总价=5*20。固然这个例子有点牵强,意会意会就好了。blog
2.下面咱们看看代码是如何设计。接口
首先咱们有个user、address、saleorder、salelines、Categorization、Category、Product、userrole、ShoppingCart、ShoppingCartItem几个类图片
以下图。
其中声明IEntity领域实体接口、IAggregateRoot聚合根集合、AggregateRoot聚合根接口的抽象类。
这里不得不提到聚合个概览。
引用一下图片:
生成的数据库模型以下图: