论坛首页 Java企业应用论坛

关于实体类粒度的讨论。

浏览 2071 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-10-12   最后修改:2009-10-12
OO
在一般的项目中,通常会建立管理类来管理实体类,而不是在实体类中直接加入方法进行管理,比如Box对象,一般我们会建立一个BoxManager来进行具体的增删改查操作。
Box只是一个独立的类,当我们遇到多层次的实体类时,就会产生一些麻烦。
比如:对一本书建模,并且需要确定的找到书中的某一章节某一页甚至某个字符。
大家是会建立多少个实体对象,这些实体对象又如何进行管理?

一种做法大概是对所有涉及的实体进行建模,比如建立以下实体类。
Book、Chapter、Page、Char
那么意味着Book类里需要包含一个Chapter列表,Chapter类里包含一个Page列表,Page里包含一个Char列表
反向的话,Char里需要包含自己所在的Page对象的引用,以此类推。
这样显然可以反映很确切的对象关系,但在管理上会有不少不便。比如我要读取一个Page的实例时,就会牵扯到其他几种类的管理类。

另一种就是建立粒度更大的类,而把其他的作为属性来统一到这个类中。
比如只建立Page类,但Page类中会包含book、chapter、charList等属性。这样做的话就比较容易将管理类集中,但缺点是可扩展性和包装时就受到了抑制,比如我需要扩展一种存储图片所使用的Book类,对于前一种方法就比较简单,或者在我要发送一本书给网络另一端的其他用户,也会比较麻烦。

于是,问题产生了,如何来进行合适的粒度分析?并且在细粒度时有没有更好的管理方法?
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics