如何描述UML类图包含地图吗?(How to describe a contained map in

2019-06-27 00:02发布

我有一个包含地图,它的键是MyClientType对象和其值MyClient对象MyServer的类。 我想描绘一个类图这种关系,但我不能想出一个干净的方式来做到这一点。

Answer 1:

您可以使用一个合格的关联关系:

┌──────────┐             1 ┌───────┐
│ MyServer │Key│───────────│ Value │
└──────────┘               └───────┘

请参阅: http://etutorials.org/Programming/UML/Chapter+6.+Class+Diagrams+Advanced+Concepts/Qualified+Associations/ (原因很难用ASCII绘制)

还需要注意的是一个合格的关联变化的多样性:

┌──────────┐          0..* ┌───────┐
│ MyServer │───────────────│ Value │
└──────────┘               └───────┘

┌──────────┐             1 ┌───────┐
│ MyServer │Key│───────────│ Value │
└──────────┘               └───────┘

顶部示出了从服务器到0-n的值的关联。 相比之下,合格协会认为,任何给定的密钥将只有一个值相关联,而且你不能有一个关键的缺席值。



Answer 2:

我只想表明从MyServer的关联与在MyClient结束的0 .. *的多重至MyClient。 一切是实现细节,可以留给程序员。



Answer 3:

           MyServer
               |
               |*
            T1toT2
            /    \
          1/      \1
         Key     Value

马克的解决方案不同的是,该服务器具有多对多关系的容器。 这也是该如何Eclipse建模框架(EMF)拟实施的地图 。

您可能还扔在一些更具体的UML的东西,比如指定的键必须是唯一的(通过定型)。



Answer 4:

首先我和其他一些人认为,UML应该包含一些基本的集合类型,因为它在某些早期版本中。 他们可以采取例如从OCL ...

该“EMF办法”似乎是正确的,但它给恕我直言,过分重视打字这实在是不重要恕我直言,所以我会它的模型只是作为一个关联类。 这将使你捕捉到所有地图的特定约束条件(如如多重性),它可以使用普通班中,但是不会使该类作为其他的人一样重要。



Answer 5:

             MyServer
                 |
                 |
                 |
                Map
                 |
                | |
               |   |
  MyClientTypeKey   MyClientType

如果它不能像上面很简单?

  • MyServer的有一对一assoication与地图
  • 地图上有1个与键和值都许多联想。


Answer 6:

克鲁的回答是最好的,但它仍然只是暗示的地图。

我认为这取决于抽象的水平,你的图旁边。 如果是比较高的,我会用黑猩猩的响应去。 如果是比较低的,你真的需要显示在地图,故意展示实施有关的细节,我会用下面走:

           MyServer
               |
               |
              Map                
               |
               |*
            T1toT2
            /    \
          1/      \1
         Key     Value

地图然后在代码实现如何完全无关( T1toT2运行时间目标实际可能不来定)。

正如Gabreil提到的,这可能是也可以使用关联类建模

           MyServer
               |
               |
              Map                
               |
               |*
            T1toT2
               |
               |
          1--------1
         Key     Value

当然,仅仅是问题,如果你真的需要显示或指定的地图。



文章来源: How to describe a contained map in UML class diagram?