请教banq,想再新项目使用DDD, 可是思路不是很清晰
学了有两周的理论了, 网上也看了不少经验贴 包括ITEYE 与 INFOQ的
不过大部分例子我个人觉得 都只是包结构和 类的定义层级 与传统贫血模式的区别
用白话说我的理解
从思想上我觉得DDD是希望 把业务 形成细粒度的 模型 ,模型里包含的是业务的具体属性和动作,好处是业务可以直观体现在模型内, 而细粒度的业务变化较少, 一般都是聚合性的业务 也就是业务组合 变化会比较多 这样把最细的业务动作放在模型内 重用性会很高。
不知道这个概念我理解的对不对?
但是如果一个新的项目,包的层级一定要按某个案例那样划分吗 比如service 还有reponsitry什么的,而且具体reponsitry与DAO的区别 在网上不断有争论 却没有权威的定义。reponsitry到底是个啥?
如果领域模型包含了所需的业务方法, 那就需要实际地调用, 在实例化领域模型前是否也需要依赖注入进行解耦合, 是否需要实现某接口?
如果非多个领域模型业务动作的组合,就不需要service直接调用, 那调用者又是谁 ,比如使用MVC框架, 是否由action等控制器来调用呢。 还是需要在外面包一层BO类?
由于具有业务属性, 领域模型是否可以做值对象来传输?
其实这种思想如果从根本打通, 可能一切问题都不是问题了, 请@banq 帮我解惑 , 我一定会在新项目中实施DDD, 并且将经验教训在这里与大家分享
[该贴被zouruixin于2012-12-14 11:36修改过]