说道DDD不得不说传统的架构与DDD的架构区别。

传统的架构不外乎就是三层,而在这三层里面又不断的细分,始终没有达到想要的效果,那么为什么当时还是采用三层。

当然在DDD没有提出的时候三层是大多数人的选择。

那么当领域驱动被提出来的时候它又能带给我们什么样的好处??

近期博主看了一下dax.net大佬有关DDD的文章,这里提出自己的一些心得,本着共同学习的精神一起进步。

 
  我也来说说领域模型

   1.为什么叫领域模型?

    首先传统的模型(这里指的只具备getter 和 setter)不包含其他业务逻辑泛指没有具体的功能这种模型我们称为失血(贫血)模式。

    然后才是具备有业务的模型除了getter 和setter 外还有其他的业务逻辑包含在里面,比如说我有一个购物车,购物车内有5件商品,每件商品价值20元,那么在销售订单的时候可以这样写总价=5*20。当然这个例子有点牵强,意会意会就行了。

    2.下面我们看看代码是如何设计。

    首先我们有个user、address、saleorder、salelines、Categorization、Category、Product、userrole、ShoppingCart、ShoppingCartItem几个类

    如下图。

    其中声明IEntity领域实体接口、IAggregateRoot聚合根集合、AggregateRoot聚合根接口的抽象类。

    

    这里不得不提到聚合个概览。

    引用一下图片:

    

   未完待续。

最新文章

  1. 安装KVM及虚拟机
  2. sublimetext3中保存代码片段
  3. EntityFramework错误:Unable to update the EntitySet because it has a DefiningQuery
  4. javascript (2)
  5. 监测程序运行的时间,stopWatch
  6. 删除Xcode中的 证书文件
  7. NVIC优先级分组
  8. 【PKUSC 2015的一道数学题】
  9. SQL语句最基本的性能优化方法
  10. java多线程下载网络图片
  11. 转载:LBP代码详细注释
  12. Debian 如何更改hdmi接口输出的分辨率
  13. 控制反转(IoC)与依赖注入(DI)
  14. hdu4055 dp
  15. 【JavaScript】函数
  16. Olap学习笔记
  17. [UE4]GameInstance初始化
  18. 2018房地产沉思录 z
  19. Flask从入门到精通之Jinja2模板引擎
  20. kettle环境变量的设置和获取

热门文章

  1. 自己写的一个 java swing 的闹钟
  2. sql 语句写的行列转换
  3. python爬虫实战(二)--------千图网高清图
  4. PyQt通过resize改变窗体大小时ListWidget显示异常
  5. String类的实现(4)写时拷贝浅析
  6. [SinGuLaRiTy] 组合数学
  7. BootstrapBootbox居中
  8. JavaWeb总结(九)—过滤器
  9. Eclipse 安装反编译插件
  10. Select()和SelectMany()的区别