2016-11-24 96 views
2

我正在设计一个作业的类图。在此设计中,我使用一个名为Currency的单独类来定义货币值及其功能。至少有四个其他类必须使用这个Currency类。类图 - 多个类使用相同的类

  • 如何在类图中显示它?我的意思是,我是否需要从Currency课到所有其他课间绘制关系(连接线)?
  • 有没有更好的方法?
  • 我在这里做错了什么?

回答

4

没有错,一个类的可重用性是有价值的。其实这是一个标准的情况。

如果在其他类使用这个类的一个属性,你有两个选择,描绘了:

  1. 借鉴使用到所使用的类的类的关联关系(线)。
  2. 将该属性放入正在使用的类的适当隔间中,并将其作为属性的类型(冒号后)放置使用的类的名称。

第一种方法的好处是您可以立即看到类之间的依赖关系。

如果您使用类但不直接作为属性类型,则可以使用最适合您要描述的情况的其他关系类型。

正如我想象的你的担心之一是,你会有很多关系指向你的班级(在你的案例Currency)。别担心。您不必将所有内容都放在一张图中。把你的类的完整的规范放在一个图上,用它们使用别的关系,然后在定义那些使用你的类的元素的图上只放一个带有名字的类框(没有任何隔间)。它会使你的模型可读。并且通过一些CASE工具的支持,您将能够看到该类的所有关系和依赖关系。顺便说一下,这就是UML规范的写法。查找示例如何在图中使用名称空间(以及其他许多其他示例)。

当然,我并不是建议为每个元素创建一个图来定义它。不。收集他们在逻辑软件包(嘿 - 这正是什么软件包!),并为每个软件包的类图。如果软件包变得太大 - 您可能需要将其分割成更小的子软件包。

对于Currency您的套餐可能类似于Utils。它也可以包含其他元素,如Date,Address等。注 - 这些都是典型的例子,可能每个分析师/设计师/程序员迟早都不得不应对这些元素。如果你很好地构建它们,你将会真正能够在未来的应用中重用它们。

最后一个想法。在构建“基于软件包”的类图时,您可能还需要一个图表,其中只显示来自几个软件包的特定部分,以澄清您的系统/业务/任​​何部分。这也很好。这里CASE工具的好处是它可以保持模型的一致性。

+0

顺便说一句 - 你有*只有* 4类使用货币?;-) – Ister

+0

不,实际上还有更多;)谢谢你的答案! –