banq兄, 在实践中,要是按照DDD领域建模,从需求分析的领域模型,逐渐过渡到设计模型,一次次迭代,两种模型(类图)很难match,因为在分析阶段的model里面有方法,在真正实现时,都移到了DAO或Service里面,而DAO和Service是无状态的,Domain其实已经不是Domain,而是Entity(所谓贫血模型)。难道领域模型只用来做描述、理解、分析业务不能直接映射成代码实现? 如果用Hibernate,spring 等框架很难实现领域模型(用AOP静态织入勉强可以做到),Spring+hibernate里面的业务本质也是Transaction Script方式(《Patterns of Enterprise Application Architecture 》。如果领域模型不能很好映射成代码实现,对编程有直接的指导意义,那领域模型似乎就高高在上,设计和实现岂不是脱节了?如果不能像ROR自然平滑实现DDD,那Spring+hibernate等框架本质还是面向数据表的编程,只是这个数据表不是真正的表而是贫血的POJO,因为Hibernate只是个data Wrapper,或者本质就就是.
|
|