锁定老帖子 主题:贫血就贫血,咂地?
精华帖 (1) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-10-31
今天和thoughtworks的一个同学讨论了一下,据他说,他们并不在domain object里面包含persistence logic。某种意义上说,domain object虽然有业务逻辑,但是更多的都是计算或者纯逻辑的东西。持久化还是通过session.save(obj)来做的。
这样的话,我倒是对这个充血模型没那么反感了。虽然我还是不喜欢那种需要额外注射依赖的充血模型。 至于怎么样比较好地给这些充血模型注射依赖,我这里刚写了一篇文章,大家可以看看这个方法如何:http://docs.codehaus.org/display/YAN/Dependency+Injection+For+Rich+Domain+Objects 再对比 http://forum.springframework.org/showthread.php?t=19098以及xiecc同学的那个类似的方法。 本来要在javaeye的confluence里面写篇中文的,但是似乎server down了。 |
|
返回顶楼 | |
发表时间:2005-10-31
ajoo 写道 你仔细读读martin的原文吧。除了“这不OO”,我还真没看见他给出什么有力的论据。 我画了Matin同志的抉择依据,见附件。 BTW:在Matin眼力,分层结构也就这么三种。呵呵,画符骗钱也未可知? |
|
返回顶楼 | |
发表时间:2005-10-31
有什么好战的,该贫的地方就贫,该富的地方就富,一个复杂系统当中必然有复杂任务,也有简单任务,用任何单一模型去套整个系统都是削足適履,还不如将这些模型挥洒自如任意搭配来的痛快。
|
|
返回顶楼 | |
发表时间:2005-10-31
age0 写道 有什么好战的,该贫的地方就贫,该富的地方就富,一个复杂系统当中必然有复杂任务,也有简单任务,用任何单一模型去套整个系统都是削足適履,还不如将这些模型挥洒自如任意搭配来的痛快。
废话多你一个不多,少你一个不少。 |
|
返回顶楼 | |
发表时间:2005-10-31
老马不是说过,何时使用领域模型完全取决于系统中行为的复杂度。如果你的业务规则很复杂,涉及到很多方面,就应该用领域模型。如果只是一些简单的操作,事务脚本是更好的选择。
|
|
返回顶楼 | |
发表时间:2005-10-31
关于怎样给马丁的充血域对象注射依赖:
http://doc.iteye.com/confluence/display/ajoo/Dependency+Injection+For+Rich+Domain+Model 看看怎样不用aop也可以不用关心依赖管理。 |
|
返回顶楼 | |
发表时间:2005-11-01
月经性话题,逢初一十五,月食日食讨论各一遍:)
|
|
返回顶楼 | |
发表时间:2005-11-01
ajoo 写道 关于怎样给马丁的充血域对象注射依赖:
http://doc.iteye.com/confluence/display/ajoo/Dependency+Injection+For+Rich+Domain+Model 看看怎样不用aop也可以不用关心依赖管理。 “充血/贫血的领域模型”同“依赖注入”是两个正交的话题,有必要扯在一起吗? |
|
返回顶楼 | |
发表时间:2005-11-01
江南白衣 写道 月经性话题,逢初一十五,月食日食讨论各一遍:)
lihailihai |
|
返回顶楼 | |
发表时间:2005-11-02
partech 写道 ajoo 写道 关于怎样给马丁的充血域对象注射依赖:
http://doc.iteye.com/confluence/display/ajoo/Dependency+Injection+For+Rich+Domain+Model 看看怎样不用aop也可以不用关心依赖管理。 “充血/贫血的领域模型”同“依赖注入”是两个正交的话题,有必要扯在一起吗? 充血对象的依赖注入是一个值得关心的问题。因为它的实例化本身不是由容器负责,而它的一些依赖则最好能由容器注射。 spring和pico对此都没有好的解决办法。 所有现行的方案,无一例外都被迫采用了service locator这种不利于单元测试的主动请求组件的方式,同时还增加了对某个具体容器api的绑定。请看: http://forum.iteye.com/viewtopic.php?t=15665&highlight=injection+AOP |
|
返回顶楼 | |