JiveJdon Community Forums
在线198人 Home | 论坛 | 培训咨询 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 2 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
acqy

发表文章: 7
注册时间: 2007年01月31日 17:51
给他发消息
初学DDD,请求指导 发表: 2008年02月19日 13:48 回复
初学DDD,下面一些是我的理解,不知是否正确,恳请banq及各位高手指导。

值对象是一种能够代表具体意义的数据集合,在领域模型中,我们没有必要使用一种标识去区分值对象个体。值对象需要依托实体而存在。在《领域驱动设计精简版》一书中,将绘图程序中画布上的某个点的坐标视为值对象我觉得不太合理,因为绘图程序中我们的确关心的是点,而坐标恰好可以作为点的一个标识;我觉得点的颜色RGB三元组倒是可以用值对象来处理。

对于服务,可以分为领域服务和应用服务。领域服务主要在领域层,它可以为实体提供业务逻辑服务,比如在处理客户信用额度时候,可以将信用额度判定逻辑作为一种服务而应用于客户实体;至于应用服务,或许更多地关注技术层面上。领域服务就像是建立在业务逻辑层面的一种“基础设施(infrastructure)”,它能为领域逻辑处理提供服务接口。

对于仓储(Reponsitory),它的职责包括了实体持久化、对象检索、筛选,它直接与底层的基础结构(比如数据持久化机制)交互,是一种实体对象状态维护与查询的机制。

DDD中,工厂负责对象的创建,关注对象的创建方式;仓储(Reponsitory)关注已创建对象的状态、持久化以及筛选查询。由于仓储具有组织已创建对象的能力,因此从应用层面上看,仓储仍然像个能够生成新对象的“工厂”。

不知我的这些理解是否偏离了DDD的本意,其实很多东西的确需要通过实践才能深刻认识到。我最近在.NET下专研DDD思想,并希望能够在.NET下实践DDD。虽说思想抽象于语言,但语言的本质特性也的确会影响到设计思想的变更。

希望banq大哥以及各位同仁能够多多指教!

banq

发表文章: 9074
注册时间: 2002年08月03日 17:08
给他发消息
回复:初学DDD,请求指导 发表: 2008年02月20日 18:06 回复
你的理解基本正确,但是实践中很难在实体和服务之间做抉择,会将很多功能放入服务中,从而可能形成贫血模型,业务重点不应该在服务中。

>将绘图程序中画布上的某个点的坐标视为值对象我觉得不太合理

这个取决于其他场景,如果点是一个实体,坐标作为定义点的位置的一个值(包含XY坐标值),那么坐标设计为值对象是允许的。

DDD非常强调实事求是,就事论事,没有抽象的规律和准则,所以,也不可能用一个数学公式表达所有业务需求,这就是OO思维的本质;
acqy

发表文章: 7
注册时间: 2007年01月31日 17:51
给他发消息
re:初学DDD,请求指导 发表: 2008年02月22日 11:24 回复
感谢banq指导!我会继续思考DDD相关的理论与其实践过程。谢谢!
这个主题有 2 回复 / 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