我是UML建模的新手,这对某些人来说似乎是一个愚蠢的问题,但我会试一试。
请考虑以下图片:
如何指定它们在日历中的显示顺序。星期一是在星期日之后和星期二之前的事实,这个模型很重要。但是如何将这些信息传递给模型的读者呢?谢谢。
答案 0 :(得分:3)
也许星期一是一周中某一天的七个实例之一,而不是一周中的某一天。将班级Day Of Week
视为一组。该集的成员是什么?有七个:{周一,周二,周三,周四,周五,周六,周日}。现在想想班级Monday
。你想要成员{这是过去星期一,下一个星期一,...}?可能不是。
您可以使用类Day of Week
的七个实例,或者可以使用包含七个枚举文字的枚举。在任何一种情况下,您仍然存在对实例进行排序的问题,但至少对于实例或枚举文字,的两个含义是不会混淆。 (如,是与的实例是一种。)
在UML中,您可以拥有{ordered}
类型为Day Of Week
的属性。但是你不能说它们是如何订购的。
下面我做了两个例子。一个是使用一个类,您将使用七个实例进行实例化,每个实例都具有sequenceNumber
属性的唯一值,您可以使用该值来对实例进行排序。另一种是使用枚举,它有七个枚举文字。每个枚举文字都有一个名为sequenceNumber
的属性,您可以使用该属性来排序枚举文字。
每个枚举文字都是枚举的一个实例,并且有一个包含唯一值的插槽。这些插槽无法在图表中显示,但它们位于模型中。下面是一个屏幕截图,显示了模型的包含树中每个枚举文字的插槽:
答案 1 :(得分:2)