﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-专注于面向对象、领域驱动设计，及软件架构方面的学习-最新评论</title><link>http://www.cnblogs.com/netfocus/CommentsRSS.aspx</link><description>要学会站在巨人的肩膀上让自己成长。QQ：94388050</description><language>zh-cn</language><pubDate>Mon, 13 Feb 2012 05:19:17 GMT</pubDate><lastBuildDate>Mon, 13 Feb 2012 05:19:17 GMT</lastBuildDate><generator>cnblogs</generator><item><title>Re:聚合（根）、实体、值对象精炼思考总结</title><link>http://www.cnblogs.com/netfocus/archive/2012/02/13/2347938.html#2307934</link><dc:creator>lcs-帅</dc:creator><author>lcs-帅</author><pubDate>Mon, 13 Feb 2012 15:51:13 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2012/02/13/2347938.html#2307934</guid><description><![CDATA[订单模型我能理解.但是帖子和回复的模型.我一直理解不了.....<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">lcs-帅</a> 2012-02-13 23:51 <a href="http://www.cnblogs.com/netfocus/archive/2012/02/13/2347938.html#2307934#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:聚合（根）、实体、值对象精炼思考总结</title><link>http://www.cnblogs.com/netfocus/archive/2012/02/13/2347938.html#2307422</link><dc:creator>netfocus</dc:creator><author>netfocus</author><pubDate>Mon, 13 Feb 2012 03:33:59 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2012/02/13/2347938.html#2307422</guid><description><![CDATA[@dax.net
你也可以做一下你自己的总结，可能还是有一些不同的观点的。<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">netfocus</a> 2012-02-13 11:33 <a href="http://www.cnblogs.com/netfocus/archive/2012/02/13/2347938.html#2307422#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:聚合（根）、实体、值对象精炼思考总结</title><link>http://www.cnblogs.com/netfocus/archive/2012/02/13/2347938.html#2307343</link><dc:creator>dax.net</dc:creator><author>dax.net</author><pubDate>Mon, 13 Feb 2012 02:23:55 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2012/02/13/2347938.html#2307343</guid><description><![CDATA[@netfocus
是啊，我本来也想这周在博客中把这个问题说明一下。现在看来免啦。直接引用你的文章就可以了。<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">dax.net</a> 2012-02-13 10:23 <a href="http://www.cnblogs.com/netfocus/archive/2012/02/13/2347938.html#2307343#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:聚合（根）、实体、值对象精炼思考总结</title><link>http://www.cnblogs.com/netfocus/archive/2012/02/13/2347938.html#2307311</link><dc:creator>netfocus</dc:creator><author>netfocus</author><pubDate>Mon, 13 Feb 2012 01:53:44 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2012/02/13/2347938.html#2307311</guid><description><![CDATA[呵呵，要勤于记录，不然很快忘掉，最后没什么积累。记录下来也可以反复看，随着时间的推移知道其还有哪些不足的地方。<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">netfocus</a> 2012-02-13 09:53 <a href="http://www.cnblogs.com/netfocus/archive/2012/02/13/2347938.html#2307311#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:聚合（根）、实体、值对象精炼思考总结</title><link>http://www.cnblogs.com/netfocus/archive/2012/02/13/2347938.html#2307308</link><dc:creator>dax.net</dc:creator><author>dax.net</author><pubDate>Mon, 13 Feb 2012 01:50:02 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2012/02/13/2347938.html#2307308</guid><description><![CDATA[netfocus速度快啊，咱们刚刚讨论完，你就总结完了。哈哈！！<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">dax.net</a> 2012-02-13 09:50 <a href="http://www.cnblogs.com/netfocus/archive/2012/02/13/2347938.html#2307308#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:我对什么是真正的对象，以及软件中的对象在分析阶段、设计阶段、实现阶段的一些看法</title><link>http://www.cnblogs.com/netfocus/archive/2012/01/31/2173099.html#2299629</link><dc:creator>AlfredLee</dc:creator><author>AlfredLee</author><pubDate>Tue, 31 Jan 2012 11:31:51 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2012/01/31/2173099.html#2299629</guid><description><![CDATA[面向对象和面向过程只是老外提出来的一些理论。自己要正确认识。千万别盲从。有时候面向过程（函数式编程）可能对得到的大量数据处理更加流畅。加油。<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">AlfredLee</a> 2012-01-31 19:31 <a href="http://www.cnblogs.com/netfocus/archive/2012/01/31/2173099.html#2299629#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:分享我对领域驱动设计（DDD）的学习成果</title><link>http://www.cnblogs.com/netfocus/archive/2012/01/12/2204949.html#2292160</link><dc:creator>Shpix</dc:creator><author>Shpix</author><pubDate>Thu, 12 Jan 2012 02:23:11 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2012/01/12/2204949.html#2292160</guid><description><![CDATA[@netfocus
谢谢楼主的回复和推荐。请问有没有关于领域驱动里的统计部分的设计。我已经开始用经典的DDD了，不想立马去应用CQRS，我想经典的DDD也该能处理统计方面的问题。还有就是经常性用的的组合查询，你知道我用的是Entity Framwork,如果自己写Sql，也需要有个承载查询集合的对象，这样就会多出许多类来。<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">Shpix</a> 2012-01-12 10:23 <a href="http://www.cnblogs.com/netfocus/archive/2012/01/12/2204949.html#2292160#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:分享我对领域驱动设计（DDD）的学习成果</title><link>http://www.cnblogs.com/netfocus/archive/2012/01/11/2204949.html#2291946</link><dc:creator>netfocus</dc:creator><author>netfocus</author><pubDate>Wed, 11 Jan 2012 14:30:57 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2012/01/11/2204949.html#2291946</guid><description><![CDATA[@Shpix
1. 关于统计信息，我们不会建模在领域模型里面；统计信息只用于显示，而且统计信息各种各样，经常变化，放在领域模型中不合理。领域模型只捕捉聚合及其相互之间的关系；所以，对于帖子和回复这两个聚合，不需要为帖子上增加一些关于回复的统计信息，而只要在回复上关联一个帖子ID即可；那为什么是帖子ID，而不是帖子对象呢？答案见下面；
2. 关于User是否应该是值对象的问题。按照我的思路是这样来设计的，首先Thread（帖子），Post（回复），User（用户）三个都是聚合，每个对象都可以在自己的上下文中单独更新或创建，比如发帖，发表回复，修改用户个人基本信息，等；那么关于Thread的作者，Post的作者这样的和用户关联的信息如何设计呢？应该用聚合关联的方式还是把User设计为值对象还是其他方式呢？我的回答是，一个聚合代表了一个data consistency boundary，即一个数据一致性边界，聚合与聚合之间不应该通过引用的方式来关联，而应该通过ID关联；所以回答上面的问题就是，Thread有一个AuthorId，Post有一个AuthorId，而AuthorId就是一个值对象；这里你可能会想，那不是回到了贫血模型了？我想说的是，难道就是把Model.OtherModel变成Model.OtherModelId后就从充血变成贫血了？你觉得可以这样等同理解吗？我希望你能再仔细想想聚合与聚合之间如何建立关联比较好，多想想引用的目的，引用的本质，多想想通过ID关联的本质和其意义吧。

如果你想知道我这些想法的来源，可以参考这里提到的三篇文章：
http://www.domaindrivendesign.org/library/vernon_2011<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">netfocus</a> 2012-01-11 22:30 <a href="http://www.cnblogs.com/netfocus/archive/2012/01/11/2204949.html#2291946#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:分享我对领域驱动设计（DDD）的学习成果</title><link>http://www.cnblogs.com/netfocus/archive/2012/01/11/2204949.html#2291386</link><dc:creator>Shpix</dc:creator><author>Shpix</author><pubDate>Wed, 11 Jan 2012 02:49:59 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2012/01/11/2204949.html#2291386</guid><description><![CDATA[[quote]netfocus：
@Shpix
1. 如果回复和帖子是一个聚合内的，帖子是聚合根，那么任何与回复有关的操作都必须由帖子实现；理由是，整个聚合就是一个整体，是一个数据修改的单元。整个聚合总是被一起取出来，然后整个一起被保存，保存时必须采用完全替换原聚合的方式；这是必须的；

2. 再进一步分析这个聚合，你会发现帖子和回复不应该在一个聚合内，而应该是单独的聚合；一些对象之所以成为一个聚合的原因是什么？是因为有依赖关系？是因为生命周期的原因吗？表面上看是这样，而且大多数人觉得回复离开帖子没有意义，所以自然认为回复应该被聚合到帖子内。但是如果这样思考，说明我们没有掌握聚合的本质！一些对象聚合在一起不...[/quote]

楼主说得有道理，我现在也是这么做的，但DDD还是有好多地方没经验。还是拿帖子和回复来说[img]http://pic002.cnblogs.com/images/2012/29195/2012011110413950.jpg[/img]
这个图里面有几个问题：
1:楼主说到的回复帖子不影响帖子本身，但添加回复都将导致帖子的统计信息发生变化，如帖子的回复数，最后改变时间（用于得到最新变化的帖子），最后的回复等信息。
2:在用领域开发中，一直困扰的问题就是类似于User这种对象，有人说他应该是值对象，我也比较同意这种理解。系统中的帖子，回复，文章等等，抽象出来他们都是事物，而用户信息只作为他们的一个整体值信息，不可变性（要嘛整体删除，要嘛替换）.但对一个社区系统来说，太多的User引用，如何去处理这些User?又如何把这个User值对象通过数据库重构回来。
3:由第2条问题，也就对应了楼主所说，回复不能改变帖子本身，是不是帖子在回复对象中也是一个值对象？<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">Shpix</a> 2012-01-11 10:49 <a href="http://www.cnblogs.com/netfocus/archive/2012/01/11/2204949.html#2291386#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:DDD Aggregate Definition</title><link>http://www.cnblogs.com/netfocus/archive/2012/01/05/2274680.html#2287088</link><dc:creator>安度</dc:creator><author>安度</author><pubDate>Thu, 05 Jan 2012 07:17:44 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2012/01/05/2274680.html#2287088</guid><description><![CDATA[我觉得，楼主还是说中文吧...<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">安度</a> 2012-01-05 15:17 <a href="http://www.cnblogs.com/netfocus/archive/2012/01/05/2274680.html#2287088#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:分享我对领域驱动设计（DDD）的学习成果</title><link>http://www.cnblogs.com/netfocus/archive/2012/01/04/2204949.html#2286565</link><dc:creator>artwl</dc:creator><author>artwl</author><pubDate>Wed, 04 Jan 2012 14:28:28 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2012/01/04/2204949.html#2286565</guid><description><![CDATA[再次看了一遍，很有收获<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">artwl</a> 2012-01-04 22:28 <a href="http://www.cnblogs.com/netfocus/archive/2012/01/04/2204949.html#2286565#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:分享一下我买过的书，有些还没看完</title><link>http://www.cnblogs.com/netfocus/archive/2011/12/30/2274947.html#2282915</link><dc:creator>zhangaz1</dc:creator><author>zhangaz1</author><pubDate>Fri, 30 Dec 2011 02:59:38 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2011/12/30/2274947.html#2282915</guid><description><![CDATA[和楼主重合度很大，比如楼主列的这几本：

代码大全
整洁代码之道
实现模式
重构与模式
.net设计规范

除了第四本没看完，其余的都看完了，请问下楼主目前做的项目是什么方向的？<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">zhangaz1</a> 2011-12-30 10:59 <a href="http://www.cnblogs.com/netfocus/archive/2011/12/30/2274947.html#2282915#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:DDD领域模型设计之--论坛</title><link>http://www.cnblogs.com/netfocus/archive/2011/12/20/2225931.html#2274970</link><dc:creator>netfocus</dc:creator><author>netfocus</author><pubDate>Tue, 20 Dec 2011 10:55:23 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2011/12/20/2225931.html#2274970</guid><description><![CDATA[@安度
模型只引用仓储的接口，如IProductRepository，而IProductRepository的实现在另外的dll中。

运行时通过IOC注入IProductRepository。<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">netfocus</a> 2011-12-20 18:55 <a href="http://www.cnblogs.com/netfocus/archive/2011/12/20/2225931.html#2274970#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:很高兴的共享给大家我的思想成果：一个ROM框架源代码以及基于该框架开发的一个论坛源代码</title><link>http://www.cnblogs.com/netfocus/archive/2011/12/20/1643207.html#2274349</link><dc:creator>安度</dc:creator><author>安度</author><pubDate>Tue, 20 Dec 2011 01:38:19 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2011/12/20/1643207.html#2274349</guid><description><![CDATA[楼主的ORM从配置文件来看很像IBatisNet<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">安度</a> 2011-12-20 09:38 <a href="http://www.cnblogs.com/netfocus/archive/2011/12/20/1643207.html#2274349#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:DDD领域模型设计之--论坛</title><link>http://www.cnblogs.com/netfocus/archive/2011/12/20/2225931.html#2274286</link><dc:creator>安度</dc:creator><author>安度</author><pubDate>Tue, 20 Dec 2011 01:07:50 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2011/12/20/2225931.html#2274286</guid><description><![CDATA[按照设计，存储库不能和模型分置到不同的类库中，因为这样的话，会产生互相引用的问题。而如果不放到不同的库，通过文件夹组织的方式，则会不会把领域层做的很臃肿？<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">安度</a> 2011-12-20 09:07 <a href="http://www.cnblogs.com/netfocus/archive/2011/12/20/2225931.html#2274286#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:分享我对领域驱动设计（DDD）的学习成果</title><link>http://www.cnblogs.com/netfocus/archive/2011/12/19/2204949.html#2273766</link><dc:creator>安度</dc:creator><author>安度</author><pubDate>Mon, 19 Dec 2011 07:57:18 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2011/12/19/2204949.html#2273766</guid><description><![CDATA[按楼主分析，基本上可以分析出，没有任何的二个对象可以归到一个聚合根之下...感觉这东西要有个度，不然，我感觉世间万物没有2个东西之间一下有不变性规则....<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">安度</a> 2011-12-19 15:57 <a href="http://www.cnblogs.com/netfocus/archive/2011/12/19/2204949.html#2273766#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:分享我对领域驱动设计（DDD）的学习成果</title><link>http://www.cnblogs.com/netfocus/archive/2011/12/17/2204949.html#2272625</link><dc:creator>无名草</dc:creator><author>无名草</author><pubDate>Sat, 17 Dec 2011 12:32:39 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2011/12/17/2204949.html#2272625</guid><description><![CDATA[先顶，有时间再看看<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">无名草</a> 2011-12-17 20:32 <a href="http://www.cnblogs.com/netfocus/archive/2011/12/17/2204949.html#2272625#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:分享一下我买过的书，有些还没看完</title><link>http://www.cnblogs.com/netfocus/archive/2011/12/15/2274947.html#2271388</link><dc:creator>netfocus</dc:creator><author>netfocus</author><pubDate>Thu, 15 Dec 2011 14:39:12 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2011/12/15/2274947.html#2271388</guid><description><![CDATA[模型之间应该按照Model.OtherModelId来建立关联的。这样有很多好处。那个源程序我还有，如果你有兴趣可以加我QQ：94388050<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">netfocus</a> 2011-12-15 22:39 <a href="http://www.cnblogs.com/netfocus/archive/2011/12/15/2274947.html#2271388#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:分享一下我买过的书，有些还没看完</title><link>http://www.cnblogs.com/netfocus/archive/2011/12/15/2274947.html#2270865</link><dc:creator>JimHappy#真嗨皮#郑海滨</dc:creator><author>JimHappy#真嗨皮#郑海滨</author><pubDate>Thu, 15 Dec 2011 06:16:05 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2011/12/15/2274947.html#2270865</guid><description><![CDATA[上面的书中，我们有 14 本是一样的，不过我有更多写清晰代码的书哦，比如：
代码大全
整洁代码之道
实现模式
重构与模式
.net设计规范。

楼主好像删了 “和大家分享一个我自己做的基于DDD+事件驱动的领域模型基础架构（附架构源代码和演示例子）” 博文，我正想再次阅读呢，蛮可惜，因为我在那里看到楼主不使用 Model.OtherModel，而使用Model.OtherModelId；最近在弄内存事务的时候发现了更多支持此做法的原因：
有利于 内存事务；
有利于 可空声明；
有利于 对客户端的同步；
而不利方面仅是 属性导航（变成方法了） 和 客户端显示（定义DTO） 这两个可通过多点代码就能弥补的小缺点了。
而 内存事务、可空声明 和 对客户端的同步 是我最近很关心的，楼主的做法对我来说真是神来之笔啊。<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">JimHappy#真嗨皮#郑海滨</a> 2011-12-15 14:16 <a href="http://www.cnblogs.com/netfocus/archive/2011/12/15/2274947.html#2270865#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Re:分享我对领域驱动设计（DDD）的学习成果</title><link>http://www.cnblogs.com/netfocus/archive/2011/12/14/2204949.html#2270410</link><dc:creator>netfocus</dc:creator><author>netfocus</author><pubDate>Wed, 14 Dec 2011 15:16:35 GMT</pubDate><guid>http://www.cnblogs.com/netfocus/archive/2011/12/14/2204949.html#2270410</guid><description><![CDATA[@Shpix
1. 如果回复和帖子是一个聚合内的，帖子是聚合根，那么任何与回复有关的操作都必须由帖子实现；理由是，整个聚合就是一个整体，是一个数据修改的单元。整个聚合总是被一起取出来，然后整个一起被保存，保存时必须采用完全替换原聚合的方式；这是必须的；

2. 再进一步分析这个聚合，你会发现帖子和回复不应该在一个聚合内，而应该是单独的聚合；一些对象之所以成为一个聚合的原因是什么？是因为有依赖关系？是因为生命周期的原因吗？表面上看是这样，而且大多数人觉得回复离开帖子没有意义，所以自然认为回复应该被聚合到帖子内。但是如果这样思考，说明我们没有掌握聚合的本质！一些对象聚合在一起不是根据“谁离开了谁是否有意义”这样的思路去判断，而是看这些对象之间是否真的是一个整体，我们是否总是把它们看成是一个整体进行操作，还有核心的判断标准就是在某个界定的上下文中，这些对象之间是否有不变性规则，所谓不变性规则是指对象之间在任何时候都要维持某个数据约束规则。从这点来看，帖子和回复之间并无任何不变性规则，帖子和回复之间完全可以独立变化。帖子根本不关心它自己有多少个回复，也不关心它的某个回复有没有改变回复内容；对于回复，也只要确保其被创建时有一个对应的帖子并且我们只要确保该帖子不能被修改即可；可以看出，帖子和回复之间没有不变性规则，我们也没有把它们看成是一个整体进行处理；试想如果每次在新增一个回复时，都要先把帖子及其所有关联的回复取出来，然后把新的回复添加到帖子的回复列表中，然后在整个保存帖子聚合，那在多用户并发回帖的情况下，如果采用乐观锁定，那帖子几乎是无法被保存的。再举个列子，就是订单与订单项，一个订单包含了多个订单项，任何时候，我们都把订单和订单项看成是一个整体，并且我们也总是把订单一次性作为整体取出来，然后作为一个整体去操作它，然后作为一个整体去持久化它。自始自终都是一个整体的概念去看待它。另外，订单有总价，在任何它维护的一个订单项发生改变或者订单项有增加或减少的变动时，订单都要去关心，因为它要实时去根据某个规则去计算订单总价，所以可以看出订单和订单项之间有不变性约束；因此我们需要把订单和订单项放在一个聚合内。从这两个例子，希望能给你一些启发，关于如何确定聚合边界方面。

具体你可以看看我对DDD的建模方面的一些核心建模技巧的总结：http://www.cnblogs.com/netfocus/archive/2011/11/13/2247471.html<br><br><div align=right><a style="text-decoration:none;" href="http://www.cnblogs.com/netfocus/" target="_blank">netfocus</a> 2011-12-14 23:16 <a href="http://www.cnblogs.com/netfocus/archive/2011/12/14/2204949.html#2270410#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>
