zoukankan      html  css  js  c++  java
  • DDD基本概念-未完成

    领域的概念:
    这是一个范围概念,而且是面向业务的

    子领域:
    对领域中的业务继续拆分,一个子域可能是一个dll,也可能时一个命名空间
    子领域根据业务不同又分为:核心子领域、支撑子领域、通用子领域

    限界上下文:
    领域驱动设计是基于领域的,领域之间的划分基于限界上下文
    限的意思就是划分、规定,界就是界限。上下文就是业务的整个流程,总的来说,可以称限界上下文为业务流程在一个划定的界限中

    实体和值对象:
    对于实体Entity和值对象Value Object是领域驱动设计里面两个重要的模型对象。所以有必要对两者的关系和区别进行理解。
    区别实体和值对象的方法就是判断是否有唯一标示,而不是属性,即使属性完全相同也可能是两个不同的对象。
    实体:
    实体核心是用唯一的标识符来定义,而不是通过属性来定义。即即使属性完全相同也可能是两个不同的对象。同时实体本身有状态的,实体有演进的生命周期,实体本身会体现出相关的业务行为,业务行为会实体属性或状态造成影响和改变。

    值对象:
    而对于值对象Value Object,它用于描述领域的某个方面本身没有概念标识的对象,值对象被实例化后只是提供值或叫设计元素,我们只关心这些设计元素是什么?而不关心这些设计元素是谁。书里面谈到颜色,数字是常见的值对象。这种对象无状态,本身不产生行为,不存在生命周期演进。
    是否为值对象跟实际的业务场景仍然关系密切。书里面又举了地址的例子,当地址是值对象的时候,地址本身无状态,可以被多个实际有状态的实体使用,地址不存在太多的生命周期演进场景下地址为值对象。而对于本身行政区域管理软件中,地址本身存在状态,存在根据行政区域规划变化而演进的过程,因此地址为实体。
    参考:http://blog.sina.com.cn/s/blog_493a84550101534t.html

    https://www.cnblogs.com/laozhang-is-phi/p/9806335.html#autoid-1-0-0

  • 相关阅读:
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
    iOS
  • 原文地址:https://www.cnblogs.com/fanfan-90/p/13511913.html
Copyright © 2011-2022 走看看