Entity 与 Value Object
1,Entity有唯一的身份标识,是可变的对象。Value Object是immutable,创建了就不能改变。
2,Value Object可以在多个领域之间重用,Entity是对实际领域的抽象。
3,Entity包含完整信息,Value Object只包含部分信息

怎么识别聚合对象
聚合对象是一组关系非常近的Entity或value Object的集合,通过聚合在这些对象周围开成固定的边界。聚合根是外部引用的入口。

Evans关于聚合的两条推荐准则:

1)聚合不要设计的过大,过大的聚合很难确保不变性,从而很难确保数据的强一致性;
2)聚合与聚合之间不要通过引用的方式来关联,而应该通过ID关联,通过ID关联也同样能表示聚合之间的关系,
    并且具有更好的性能和可伸缩性,聚合根之间通过ID关联的好处是:不会因为Load一个聚合根而把其他关联的聚合根一起Load出来,这样也避免了Load一个聚合根会把整个数据库Load出来的风险; 
    另外,对ORM的要求也很低,不需要ORM支持LazyLoad;

聚合根与聚合根之间的关系不像聚合内的Entity之间这么强烈内聚,它们之间仅仅是某种比较弱的关联关系,每个聚合根都有其独立的生命周期;

如customer和order都是聚合对象,要customer的所有订单,应该是customer.getOrderIDList(),而不是customer.getOrders()

相关链接

https://github.com/yuezhongxin/CNBlogs.Apply.Sample --cnblogs实例

http://www.eventuallyinconsistent.com/2012/01/changing-mindset-part-1-4-classic.html
http://www.jdon.com/ddd.html
https://martinfowler.com/tags/domain%20driven%20design.html
http://www.ituring.com.cn/article/25
http://colobu.com/2015/05/19/CQRS-and-Event-sourcing/
http://www.cnblogs.com/netfocus/p/4150084.html
https://github.com/gregoryyoung/m-r CQRS示例
http://www.cnblogs.com/netfocus/archive/2011/10/10/2204949.html
https://www.zhihu.com/topic/19826540/hot
https://www.codeproject.com/articles/339725/domain-driven-design-clear-your-concepts-before-yo?display=print
https://blog.csdn.net/chunlongyu/article/details/71302243
http://www.cnblogs.com/wangiqngpei557/p/3908337.html

Domain Driven Development相关概念的更多相关文章

  1. Domain Driven Design and Development In Practice--转载

    原文地址:http://www.infoq.com/articles/ddd-in-practice Background Domain Driven Design (DDD) is about ma ...

  2. DDD:Strategic Domain Driven Design with Context Mapping

    Introduction Many approaches to object oriented modeling tend not to scale well when the application ...

  3. Domain Driven Design

    在Spring官网的第一个tutorial中看到了这种 设计模式 Domain Driven Design 找到了篇介绍这个得文章: What is Domain Driven Design? &qu ...

  4. [译文]Domain Driven Design Reference(四)—— 柔性设计

    本书是Eric Evans对他自己写的<领域驱动设计-软件核心复杂性应对之道>的一本字典式的参考书,可用于快速查找<领域驱动设计>中的诸多概念及其简明解释. 其它本系列其它文章 ...

  5. 【翻译稿】Behavior Driven Development (BDD)行为驱动开发

    这是一篇翻译稿,方便给不知道BDD的同学扫盲.原文链接:What is BDD (Behavior Driven Development)? | Agile Alliance Definition定义 ...

  6. 2 What is the Domain Driven Design? 什么是领域驱动设计

    What is the Domain Driven Design? 什么是领域驱动设计 Domain-driven design (DDD) is an approach to software de ...

  7. 什么是领域驱动设计(Domain Driven Design)?

    本文是从 What is Domain Driven Design? 这篇文章翻译而来. ”…在很多领域,专家的作用体现在他们的专业知识上而不是智力上.“ -- Don Reinertsen 领域驱动 ...

  8. 领域驱动设计(Domain Driven Design)参考架构详解

    摘要 本文将介绍领域驱动设计(Domain Driven Design)的官方参考架构,该架构分成了Interfaces.Applications和Domain三层以及包含各类基础设施的Infrast ...

  9. [译文]Domain Driven Design Reference(一)—— 前言

    本书是Eric Evans对他自己写的<领域驱动设计-软件核心复杂性应对之道>的一本字典式的参考书,可用于快速查找<领域驱动设计>中的诸多概念及其简明解释. DDD到目前为止知 ...

随机推荐

  1. jqweui 关于$(document.body).infinite的bug

    jqweui,0.8.2版本infinite存在bug,会存在下拉不触发的情况,解决办法: 源代码3730行附近 Infinite.prototype.scroll = function() { va ...

  2. ubuntu install wiznote

    sudo add-apt-repository ppa:wiznote-team #添加官方源 sudo apt-get update #更新源 sudo apt-get install wiznot ...

  3. HTTP 03 HTTP 报文

    客户端的HTTP报文, 叫做请求报文 服务器端的叫做 响应报文. HTTP 报文本身是由多行 (用 CR+LF 作换行符) 数据构成的字符串文本. HTTP 报文大致分为报文首部 和 报文主体 两部分 ...

  4. HDFS基础

    1. HDFS Shell基础 [root@master hadoop]# hadoop fsUsage: hadoop fs [generic options] [-appendToFile < ...

  5. window、Linux 文本文件转换

    如下: $ sed -e 's/.$//' mydos.txt > myunix.txt $ sed -e 's/$/\r/' myunix.txt > mydos.txt

  6. js 原型链和继承(转)

    在理解继承之前,需要知道 js 的三个东西: 什么是 JS 原型链 this 的值到底是什么 JS 的 new 到底是干什么的 1. 什么是 JS 原型链? 我们知道 JS 有对象,比如 var ob ...

  7. Cookie的简单实用

    作用域: 一个域名下的所有网页共用一套cookie. 几个封装好的工具方法: // 添加一个cookie function setCookie(name, value, iDay) { var oDa ...

  8. Nginx、haproxy反向代理设置

    Nginx反向代理配置: #user nobody; worker_processes ; events { worker_connections ; } http { include mime.ty ...

  9. 关于vmware 11.1安装windows 7操作系统时报错 Unist specified don’t exist. SHSUCDX can’t install

    笔者今天在vmware 11.1 虚拟机下使用光驱安装windows 7 32位操作系统时,报错: Unist specified don’t exist. SHSUCDX can’t install ...

  10. iOS WebView中视频横屏播放返回导航栏在状态栏下面

    iOS9以上系统横屏播放UIWebView中的视频返回后会出现以下问题:1.如图,UIWebView中包含一个视频:   1 2.播放web内容中的视频,并横屏观看:   2 3.直接在横屏状态下返回 ...