Class 图 - 多个 classes 使用相同的 class
Class diagram - multiple classes uses same class
我正在为作业设计 class 图。在此设计中,我使用一个名为 Currency
的单独 class 来定义货币值及其功能。至少有四个其他 classes 必须使用此 Currency
class.
- 如何在 class 图表中显示它?我的意思是,我是否需要绘制从
Currency
class 到所有其他人的关系(连接线)?
- 有没有更好的方法?
- 我做错了什么?
没有错,class 的可重用性很有价值。其实这是一个标准的情况。
如果您在另一个 class 中使用这个 class 作为属性,您有两个选项来描述它:
- 从使用的class到使用的class画一条关联关系(线)。
- 将属性放在正在使用的 class 的适当隔间中,并作为属性的一种类型(在冒号之后)放置所使用的 class.[=34= 的名称]
第一种方法的好处是您可以立即看到 classes 之间的依赖关系。
如果您使用 class 但不是直接作为属性类型,您可以使用最适合您要描述的情况的其他关系类型。
正如我想象的那样,您的担忧之一是您将有很多关系指向您的 class(在您的情况下为 Currency
)。别担心。您不必将所有内容都放在一个图表中。将 class 的完整规范放在一个图表上,其中包含使用其他东西的那些关系,然后只将 class 带有名称的框(没有任何隔间)放在定义那些使用你的元素的图表上 class。它将使您的模型可读。在某些 CASE 工具的支持下,您将能够看到此 class 的所有关系和依赖关系。顺便说一句,这就是 UML 规范的编写方式。查看那里的图表(以及许多其他图表)中如何使用命名空间的示例。
当然,我并不是建议为每个元素创建一个图表来定义它。不。将它们收集在逻辑包中(嘿 - 这正是包的用途!)并为每个包制作一个 class 图。如果包变得太大 - 您可能需要将其拆分成更小的子包。
对于 Currency
,您的包裹可能类似于 Utils
。它还可以包含其他元素,如 Date
、Address
等。注意 - 这些是典型示例,可能每个 analyst/designer/programmer 迟早都要处理这些元素。如果构建得好,您将真的能够在未来的应用程序中重用它们。
最后一个想法。在构建 "package based" Class 图表时,您可能还需要一个图表来显示来自多个包的特定部分,以阐明您的 system/business/whatsoever 的一些内容。这也绝对没问题。这里 CASE 工具的另一个好处是它可以保持模型的一致性。
我正在为作业设计 class 图。在此设计中,我使用一个名为 Currency
的单独 class 来定义货币值及其功能。至少有四个其他 classes 必须使用此 Currency
class.
- 如何在 class 图表中显示它?我的意思是,我是否需要绘制从
Currency
class 到所有其他人的关系(连接线)? - 有没有更好的方法?
- 我做错了什么?
没有错,class 的可重用性很有价值。其实这是一个标准的情况。
如果您在另一个 class 中使用这个 class 作为属性,您有两个选项来描述它:
- 从使用的class到使用的class画一条关联关系(线)。
- 将属性放在正在使用的 class 的适当隔间中,并作为属性的一种类型(在冒号之后)放置所使用的 class.[=34= 的名称]
第一种方法的好处是您可以立即看到 classes 之间的依赖关系。
如果您使用 class 但不是直接作为属性类型,您可以使用最适合您要描述的情况的其他关系类型。
正如我想象的那样,您的担忧之一是您将有很多关系指向您的 class(在您的情况下为 Currency
)。别担心。您不必将所有内容都放在一个图表中。将 class 的完整规范放在一个图表上,其中包含使用其他东西的那些关系,然后只将 class 带有名称的框(没有任何隔间)放在定义那些使用你的元素的图表上 class。它将使您的模型可读。在某些 CASE 工具的支持下,您将能够看到此 class 的所有关系和依赖关系。顺便说一句,这就是 UML 规范的编写方式。查看那里的图表(以及许多其他图表)中如何使用命名空间的示例。
当然,我并不是建议为每个元素创建一个图表来定义它。不。将它们收集在逻辑包中(嘿 - 这正是包的用途!)并为每个包制作一个 class 图。如果包变得太大 - 您可能需要将其拆分成更小的子包。
对于 Currency
,您的包裹可能类似于 Utils
。它还可以包含其他元素,如 Date
、Address
等。注意 - 这些是典型示例,可能每个 analyst/designer/programmer 迟早都要处理这些元素。如果构建得好,您将真的能够在未来的应用程序中重用它们。
最后一个想法。在构建 "package based" Class 图表时,您可能还需要一个图表来显示来自多个包的特定部分,以阐明您的 system/business/whatsoever 的一些内容。这也绝对没问题。这里 CASE 工具的另一个好处是它可以保持模型的一致性。