一个对象设计问题,求帮助。

cgttian 11-06-17
         

在JiveJdon 中 Forum 与 ForumThread 是聚合关系,Forum 是聚合根。
为什么在Forum代码上却看不出它与FourmThread的关联,只在ForumThread体现与Forum的关联?

我还有好些个关于确定对象间关系的问题,整理下 不开新贴 修改到这个贴子上,求帮助。
-----------------------------------------------------------------------------
我是做行业软件(电力教育相关)的,近期想对一个系统重新开发。项目大致有这几个方面:年度计划、培训实施、证书管理等。

1.计划中有一个计划类别说明这个计划属于什么类别的,比如“XXXX培训”计划 属于管理人员培训-->金融财务审计中的计划。
在原设计中像这些类别类的信息都来自一个叫CODE的表 对应到系统中的一个XxxCodeBean中,计划对象中保存xxxCodeBean的id. 对象间的关系都是从数据库的主外键上去看的,没有引用依赖 或者说都没有对象关系。
我想重新设计对象及对象间的关系(聚合关系),计划类别、计划、实施三者的关系为 1-->N-->N。计划必须有计划类别,实施必须有计划。这里适不适合设计成聚合关系将计划类别确定为聚合根?

[该贴被cgttian于2011-06-17 15:00修改过]

         

2
banq
2011-06-20 13:12

2011年06月17日 11:31 "@cgttian"的内容
这里适不适合设计成聚合关系将计划类别确定为聚合根? ...


貌似可以,自己尝试一下吧

cgttian
2011-06-21 22:01

画了一张草图,第一次画 可能用的图例还有很多问题。



TrainingClass(培训实施-培训班) 是重点 主要的业务工作都围绕其开展,就如同ForumMessage。

TrainingClass 有多个状态(流程) 如下图:



在一个特定状态中 完成一个特定业务功能。

像这种有流程状态的对象 应该在建模时就考虑进来吗? 该怎样设计?

可能我还没写清楚问题 因为还是觉得混乱。
继续努力 有新进展再贴上来 请各位指导。

banq
2011-06-22 09:38

从类图来看,基本是这样,可以看出,你这个系统是以状态图为主要特点。

从所有音乐系统高度来看,基本可以分为三种偏重:
1.偏重类图,这样的系统有复杂多变的类关系,我们使用DDD来破解。

2.偏重用例图:这样的系统有复杂多变的行为事件,我们使用DCI来实现。

3.偏重状态图:这样的系统有复杂多变的流程和状态,我们使用状态存储数据库来实现。

可以说,不同的系统目前都已经有了相应特点的实现之道了。

cgttian
2011-06-22 09:56

2011年06月22日 09:38 "@banq"的内容
这个系统是以状态图为主要特点。这样的系统有复杂多变的行为事件,使用状态存储数据库来实现...

说实话我不大明白,是说这样的系统最好还是按老路 以数据库为中心?
有没有一些类似系统的设计 实现推荐...

2Go 1 2 下一页