【发布时间】:2016-11-24 09:29:46
【问题描述】:
我正在为一项作业设计一个类图。在这个设计中,我使用了一个名为Currency 的单独类来定义货币值及其功能。至少有四个其他类必须使用这个Currency 类。
- 如何在类图中显示它?我的意思是,我是否需要从
Currency类到所有其他类绘制关系(连接线)? - 有没有更好的办法?
- 我在这里做错了什么?
【问题讨论】:
标签: oop uml class-design class-diagram
我正在为一项作业设计一个类图。在这个设计中,我使用了一个名为Currency 的单独类来定义货币值及其功能。至少有四个其他类必须使用这个Currency 类。
Currency 类到所有其他类绘制关系(连接线)?【问题讨论】:
标签: oop uml class-design class-diagram
没有错,类的可重用性很有价值。其实这是一个标准的情况。
如果你在另一个类中使用这个类作为属性,你有两个选项来描述它:
第一种方法的好处是您可以立即看到类之间的依赖关系。
如果您使用类但不直接作为属性类型,则使用最适合您要描述的情况的其他关系类型。
我想您的担忧之一是您将有很多关系指向您的班级(在您的情况下为Currency)。别担心。您不必将所有内容都放在一个图表中。将您的类的完整规范放在一个图表上,其中它使用其他东西的关系,然后只将带有名称的类框(没有任何隔间)放在定义使用您的类的那些元素的图表上。它将使您的模型可读。并且在某些 CASE 工具的支持下,无论如何您都将能够看到该类的所有关系和依赖关系。顺便说一句,这就是 UML 规范的编写方式。看看那里的图表(以及许多其他图表)中如何使用命名空间。
当然,我不建议为每个元素创建一个图表来定义它。不。将它们收集在逻辑包中(嘿——这正是包的用途!)并为每个包制作一个类图。如果包变得太大 - 您可能需要将其拆分为更小的子包。
对于Currency,您的包可能类似于Utils。它还可以包含其他元素,如Date、Address 等。注意 - 这些是典型示例,可能每个分析师/设计师/程序员迟早都必须处理这些元素。如果您构建它们,您将真正能够在未来的应用程序中重用它们。
最后一个想法。当您构建“基于包的”类图时,您可能还需要一个仅显示来自多个包的特定部分的图表,以阐明您的系统/业务/其他方面的一些内容。这也绝对没问题。 CASE 工具的另一个好处是它可以保持模型的一致性。
【讨论】: