0

我有两个班级,但不应该使用什么样的关系。我有一个类 Document 有很多属性但没有方法。第二类是我所说的 DocumentFact(Fact - Factory)。此类包含返回 Document 对象集合的不同方法。

因此,Document 类对 DocumentFact 类一无所知,因为它与它无关。另一方面,DocumentFact 创建多个 Document 对象。这是一种什么样的UML关系?我在想这样的事情:

--------------           ------------
|DocumentFact|  -------> | Document |
--------------       2.* ------------  

或者:

--------------            ------------
|DocumentFact|  ------- []| Document |         // Composition
--------------            ------------  

你怎么看?

4

3 回答 3

4

只是我的意见 - 如果 DocumentFact 真的是一个工厂,我会花费额外的三个按键并将其拼写出来。当您的班级用户第一次阅读班级名称时,您会迫使他们弄清楚您的意思是“文档工厂”还是“关于文档的事实”。不确定性是不必要的,特别是如果您可以触摸类型。我建议使名称更具自我记录性且不那么模棱两可。

于 2009-03-13T13:43:09.843 回答
3

听起来更像是“实例化”依赖关系?

实例化图 http://publib.boulder.ibm.com/infocenter/rsmhelp/v7r0m0/topic/com.ibm.xtools.modeler.doc/images/instantiation.gif

于 2009-03-13T12:17:03.000 回答
1

我同意工具包,工厂->产品是实例化关系 - 多重性描述符不适用,除非工厂还打算维护对产品对象的引用,在这种情况下它是 1:* 或 1:n (multiton)

于 2009-03-13T12:30:35.853 回答