关于jivejdon的DDD思考!
最近一直在学习DDD,贴子看了很我,吸收了很多来自不同人的精华,基本上知道DDD的核心在于领域,其他都基于领域的操作。按Banq老师的说法是分为实体、值对象和服务,其中服务可为分应用层与领域层,而领域层是可以再细分为领域服务和领域对象,领域服务依赖领域对象;应用层是主要处理业务逻辑的,领域层处理的就是核心领域对象啦。那么我们可不可以这样理解呢?领域对象一般是实体与值对象的集合,其中实体除了相应的属性还有对于自身的一些操作,而值对象就是纯粹的数据载体!这时候对于领域一些非自身操作又不是涉及业务逻辑的就交由领域服务来处理了,而这些处理又都是依赖于Repository。那么我觉得难点应该就在于:1、把业务逻辑与领域对象自身的操作区分开来;2、实体与值对象的定义;3、实体的操作与领域服务的区分。
如果以上的理解是符合DDD的话,那么来看看jivejdon的DDD吧:
我觉得老师是把service包对应于上述的应用层,也就是处理业务逻辑的,这些是依赖于:领域服务、Repository、dao等;那么manager包的应该就是领域服务层的了,那么在jivejdon我就分不出实体与值对象了。好像两者混着用了,只是在用法上区分出来!
不知道我这样的理解是否符合老师的设计,请指正,谢谢!