JiveJdon Community Forums
在线162人 Home | 论坛 | 培训咨询 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » 项目工程开发经验谈
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 1 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
fico07

发表文章: 6
注册时间: 2007年10月20日 10:03
给他发消息
DDD项目中都是以失血模型存在着? 发表: 2007年12月10日 15:33 回复
这如何理解?DDD我觉得很是能自圆其说的一种设计思想.一直想把的什么失血和贫血,BO,VO,POJO,还有怎么分层跟DDD作一个整合.一些基层框架可以DDD提供服务,比如ibatis,我觉得这些东西如果放在DDD这么一个环境下能很好的解释. 但现在总感觉没突破这一层.
banq

发表文章: 9074
注册时间: 2002年08月03日 17:08
给他发消息
回复:DDD项目中都是以失血模型存在着? 发表: 2007年12月11日 10:11 回复
DDD项目中,模型分三种:实体 值对象和服务,这三种组成一个完整丰富的充血模型,如果你只看到这三种之一元素:实体,发现实体只有setter/getter,就误认为这是一个失血或贫血模型,那么未免有点盲人摸象的味道。

以案例来说明吧:在JiveJdon3源码中,ForumMessage是一个实体,但它只是领域模型的一个元素,为了实现ForumMessage输出过滤功能,我创建了一个ForumMessageRender模型,其实是ForumMessage的Proxy,ForumMessageRender模型也属于领域模型一种,在其中我们实现了论坛业务复杂功能:输出过滤,如果你把这个功能放在ForumMessageService这个服务中实现,那么无疑你就范了MartinFowler反对的那种将模型变成失血,业务放在Service中实现的问题。

为什么我们总是在失血和贫血,BO,VO,POJO等概念上纠缠不清?因为这些都是不同高度层次的问题,但是程序员把它们当作同一个层次问题,那么当然得不出因果,就象鸡和蛋问题,如果你将鸡和蛋看成同一个层次,是鸡生蛋,还是蛋生鸡,没有结果,但是如果上帝告诉你,鸡比蛋高一个层次,问题就解决,同样,失血或充血模型比POJO/BO/VO等高一个层次,是从需求中直接来的,那么你就不会抓住一个POJO在微观世界反复研究它是失血还是充血,因为这个POJO只是一个结果。

相关讨论:
http://www.jdon.com/jivejdon/forum/messageList.shtml?thread=31369
这个主题有 1 回复 / 1 页 [ ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam