• DDD领域驱动之干货 (一)


    说道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聚合根接口的抽象类。

        

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

        引用一下图片:

        快速理解聚合根、实体、值对象

          生成的数据库模型如下图:

        

  • 相关阅读:
    MySQL GTID复制Slave跳过错误事务Id以及复制排错问题总结
    Git基础命令整理
    原创-公司项目部署交付环境预检查shell脚本
    解决SecureCRT超时自动断开的问题
    Linux设置显示中文和设置字体
    高等代数4 线性方程组
    高等代数3 行列式
    高等代数2 向量组
    高等代数1 矩阵
    离散数学4 组合数学
  • 原文地址:https://www.cnblogs.com/edna-lzh/p/6869416.html
Copyright © 2020-2023  润新知