如何设置类之间的顺序关系?

How to set sequence relationship between classes?

我是 UML 建模的新手,对某些人来说这似乎是一个愚蠢的问题,但我会试一试。

请考虑下图:

如何指定它们出现在日历中的顺序。星期一在星期日之后和星期二之前这一事实在这个模型中很重要。但是如何将该信息传输到模型的 reader 呢?谢谢。

没有订单。如果你想创建一个枚举,那么你必须创建一个 <<enumeration>> 原型 class Day Of Week 并将日期作为单个属性。

您的模型只是定义 Monday 等是工作日。

注:考虑到JimL.的评论,这既不是定型的class,也不包含属性。它是一种带有文字的数据类型。谢谢天哪,你让它看起来一模一样 ;-)

也许星期一是一周中一天的七个实例之一,而不是一周中的某一天。将 class Day Of Week 视为一个集合。集合的成员是什么?有七个:{Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}。现在想想classMonday。你想要会员{this-past-monday, next-monday, ...}吗?可能不是。

您可以使用 class Day of Week 的七个实例,或者您可以使用具有七个枚举文字的枚举。在任何一种情况下,您仍然会遇到对实例进行排序的问题,但至少对于实例或枚举文字,is a 的两个含义不会混淆。 (例如,的一个实例,而的一种。)

在 UML 中,您可以有一个 属性,它有 {ordered}Day Of Week 类型的值。不过,您不能说出它们是如何排序的。

下面我做了两个例子。一种是使用 class,您将使用七个实例对其进行实例化,每个实例都具有唯一的 sequenceNumber 属性值,您可以使用该属性对实例进行排序。另一种是使用枚举,它有七个枚举文字。每个枚举文字都有一个名为 sequenceNumber 的属性,您可以使用它来对枚举文字进行排序。

每个枚举文字都是枚举的一个实例,并且有一个包含唯一值的槽。这些插槽无法显示在图表上,但它们在模型中。这是显示模型包含树中每个枚举文字的插槽的屏幕截图: