. 聚合根 实体 值对象的区别 从标识的角度: 聚合根具有全局的唯一标识,而实体只有在聚合内部有唯一的本地标识,值对象没有唯一标识,不存在这个值对象或那个值对象的说法 从是否只读的角度: 聚合根除了唯一标识外,其他所有状态信息都理论上可变 实体是可变的 值对象是只读的 从生命周期的角度: 聚合根有独立的生命周期,实体的生命周期从属于其所属的聚合,实体完全由其所属的聚合根负责管理维护 值对象无生命 ...
2012-02-12 14:22 38 27846 推荐指数:
原文:http://www.cnblogs.com/netfocus/p/5145345.html ...
1 前置阅读 在阅读本文章之前,你可以先阅读: 什么是DDD 2 实现值对象 值对象有两个主要特征:它们没有任何标识。它们是不可变的。 我们举个例子:小明是“浙江宁波”人,小红也是“浙江宁波”人,小王是“浙江杭州”人,在这个例子中,我们把地址可以独立出一个值对象出来,我们会遇到 ...
定义: 实体不仅需要知道它是什么,还要知道它是哪个,值对象只关心它是什么。 实体:许多对象不是由它们的属性来定义,而是通过一系列的连续性和标识来从根本定义的。只要一个对象在生命周期中能够保持连续性,并且独立于它的属性(即使这些属性对系统用户非常重要),那它就是一个实体。 值对象:当你只关心 ...
关于具体需求,请看前面的博文:DDD领域驱动设计实践篇之如何提取模型,下面是具体的实体、聚合、值对象的代码,不想多说什么是实体、聚合等概念,相信理论的东西大家已经知晓了。本人对DDD表示好奇,没有在真正项目实践过,甚至也没有看过真正的DDD实践的项目源码,处于极度纠结状态,甚至无法自拔,所以告诫 ...
上下文的第一次定义,今天咱们就继续说说DDD领域驱动设计中的聚合相关知识,聚合这一块比较多,我暂时决定用 ...
消息场景:用户 A 发送一个消息给用户 B,用户 B 回复一个消息给用户 A。。。 现有设计:消息设计为实体并为聚合根,发件人、收件人设计为值对象。 三个问题: 实体最重要的特性是什么? Message 实体是怎么得来的? 发件人、收件人为什么不是实体? 1. 实体最重 ...
AggregateRoot和Entity的区别 AggregateRoot继承于Entity,并实现了IGeneratesDomainEvents接口 在DDD里面聚合根是一定对应一个实体 为什么要使用AggregateRoot 实现了IGeneratesDomainEvents,属性 ...