在UML中收缩多个类似的属性

时间:2016-05-23 15:19:07

标签: class attributes uml diagram contract

在学校,我们应该为我们计划编写的课程绘制一个UML课程图(我们应该进行规划)。

我现在有10个JLabel,它们是类Game的属性,每个都显示不同的图片,但所有这些都用于同一目的。为了使其更清晰,标签将被称为Player1Throw1Player1Throw5Player2Throw1Player2Throw5

我的问题是,如果UML中有正确的方法来收缩这10个标签,那么我就不必写了

Game
--------
-Player1Throw1: JLabel
-Player1Throw2: JLabel
-Player1Throw3: JLabel
-Player1Throw4: JLabel
-Player1Throw5: JLabel
-Player2Throw1: JLabel
-Player2Throw2: JLabel
-Player2Throw3: JLabel
-Player2Throw4: JLabel
-Player2Throw5: JLabel

或换句话说:有没有办法在这2行中收缩这10行?

感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

您应该能够从类图中生成代码。如果不单独定义所有属性,您将如何做到这一点?如果你能回答这个问题,就知道如何展示它们。

在OOP中进行设计试图找出是否可以使行为更抽象。如果您有10个相同的标签,那么您是否可以根据可以完成工作的共享接口创建另一组类?深入了解设计模式。有一种模式适用于这种情况。

答案 1 :(得分:0)

您可以在UML中使用以下表示法:

- Player1Throw:JLabel [5]

- Player2Throw:JLabel [5]

答案 2 :(得分:0)

不要将全局变量用于本地属性。 在代码级别,对同一角色的多个对象使用集合(数组,集合,包等)。

你应该定义一个类Player(据我所知是Game的一部分),类Game应该包含两个Player类型对象的集合(数组?)播放器。 玩家应该有一个属性抛出,具有多重性5(或者可能是0..5 - 我不知道你的项目的详细信息,但是在代码级别上它并没有真正影响类结构)类型为JLabel。

因此,您的UML类图将如此

class diagram for answer