业务对象(领域设计)在实现上的困惑

07-04-18 cscs31
在设计一个业务对象的时候,我将业务对象的属性和方法设计完整,可是在实现的时候发现,实现这个业务对象的时候,属性和方法的实现不同,在我看来业务层对于上一层次应该只暴露接口而不暴露实现,那么是否应该将设计的业务对象的方法剥离到接口上去,为业务对象只保留属性。

我不知道这样理解对不对?

还有个困惑,就是在设计类似主从结构的时候,当然我知道在领域设计的时候不是叫主从结构,从业务对象在主业务对象中是以集合的形式体现,具体说也就是List,那么在实现的时候应该怎么做呢?也在主业务对象中放上一个List<从业务对象>的对象?

banq
2007-04-19 11:50
>设计一个业务对象

这个业务对象如果按照Evans DDD来设计,应该划分为实体对象 值对象和服务等。

如果确定哪些属性和方法属于实体对象,哪些属于值对象,那么就自然有了“主从结构”。

注意 主从结构只是一个现象,不是设计原则,设计原则是 高聚合 低关联,能没有关联的就不要,减少主从结构,否则关系太乱。

diz
2007-04-19 16:22
在设计业务对象要结合领域知识!

把领域概念中对于业务抽象有共性的角色抽象出来。这样才是领域建模,你的那种是流程建模!

cscs31
2007-04-20 09:39
那么两位大师,能不能就如下简单的场景来一下实际的操作呢?

博客文章和评论的关系,看看大师是如何真正去处理一个实际业务的?

banq
2007-04-20 09:58
>博客文章和评论的关系

你的博客文章和评论关系是JiveJdon3.0中主题贴和回帖之间的1:N关联关系,图就不用给你画了吧.

关键是我怎么得到这个结果,而你到了门口都不知道门在哪里呢?还是需要学习,别人告诉你的永远是结果,看看下面这篇文章:

http://www.jdon.com/mda/ddd.html

cscs31
2007-04-20 16:37
您还是画张图吧,另外您推荐的那篇文章从哪能看出这种1:N的关系处理。

>ForumThread和ForumMessage的关联关系必设定成单向的,而不是双向的,因为领域建模中,关联越简单越好。

文章里提到减少这种关系,我是很同意的。但是如果遇到怎么处理,我好像没有看到。还有别的文章吗?

banq
2007-05-10 17:39
关于博客文章和评论之间的1:N关系图,实际就是最普通的UML关联图,你参考UML有关文章就可以。

只有学习了UML图,就会画了,这是非常基础的问题,拜托不要在这里浪费大家时间和精力。

[该贴被banq于2007年05月17日 12:43修改过]

猜你喜欢