有一段时间没去http://www.domaindrivendesign.org/了,再去发现改版了,增加了很多内容
令人高兴的是,官方发布了一个完整的示例http://dddsample.sourceforge.net/
例子就是书中第7章讲的货物运输
以前都是凭着对ddd的理解来组织代码,看到示例,发现有跟自己理解相同的,也有不同的
也看到了一些更好的方法
示例大量应用DI/IOC模式
以前我说仓储应该是internal的 客户应该只能使用service,示例不一样,它是通过在应用层 组织其下层的元素来实现
以前我说infrastructure不应该使用domain中的东西,我认为infrastructure是在最下层,这样会造成循环引用,也不符合分层原则
以前我说一些基类、接口比如:IEntity,应该放在Infrastructure中,示例不一样,它是放在domain,考虑到它是用hibernate做持久化而且应用并不是很复杂也说
得过去,但是我感觉还是不好
它使用的Specification(规格模式)比我想象丰富多了,这是我的不足
还有一点,看到它对domain service与application service的划分,以前我一直分不清,现在我明白了,原来是我一直遵守的我所认为的那个原则束缚了我(仓储应该是internal的 客户应该只能使用service)
如果大家有兴趣,就去看看这个示例,还有它在yahoo的讨论,也值得看看http://tech.groups.yahoo.com/group/domaindrivendesign/message/11698