当前位置:  开发笔记 > 编程语言 > 正文

UML类图关联 - 如何,何时以及为何?

如何解决《UML类图关联-如何,何时以及为何?》经验,为你挑选了1个好方法。

我经常对UML感到困惑,这种情况也不例外.假设我有一个接口IAnimal,类Food和Cat:

interface IAnimal {
    void Feed(Food food);
}

class Cat : IAnimal {
    void Feed(Food food) {
        //code
    }
}

我有3个关于为这3个元素绘制UML类图的问题:

我想我应该使用IAnimal和Food或Cat and Food之间的关联.在关联线的一侧是否应该有箭头,如果是,那么在哪一侧以及为什么存在?

如果我在图上将Feed作为IAnimal方法编写,我应该在类Cat中编写方法Feed还是仅编写其他Cat方法?

最重要的是:IAnimal和食物,猫和食物之间的联系,还是两者兼而有之?

toolkit.. 14

UML定义了许多关系类型.

关系有许多不同的符号:

关联关系具有可靠路径的基本符号

依赖关系具有虚线箭头的基本符号

泛化关系具有带三角形箭头的实心路径的基本符号

实现关系的基本符号是带有三角形箭头的虚线箭头(依赖和泛化的混合)

形象地

+---------------------------+
|       <>       |
|           IAnimal         |
+---------------------------+                        +--------+
| + Feed(food: Food) : void |- - - - <> - - - ->|  Food  |
+---------------------------+                        +--------+
              ^
             /_\
              |

              |

              |
        +-----------+
        |    Cat    |
        +-----------+

那是:

IAnimal和之间的关系Food是一种使用关系.这显示为与构造型«use»的依赖关系

IAnimal和之间的关系Cat是一种实现关系.

关联关系用于指示两个或更多个分类器之间的连接.这意味着至少有一个类具有另一种类型(或集合)的属性.实际上,属性和关联结束包含相同的信息并且可以互换.

所以,恕我直言,你描述的关系不应该被建模为关联.



1> toolkit..:

UML定义了许多关系类型.

关系有许多不同的符号:

关联关系具有可靠路径的基本符号

依赖关系具有虚线箭头的基本符号

泛化关系具有带三角形箭头的实心路径的基本符号

实现关系的基本符号是带有三角形箭头的虚线箭头(依赖和泛化的混合)

形象地

+---------------------------+
|       <>       |
|           IAnimal         |
+---------------------------+                        +--------+
| + Feed(food: Food) : void |- - - - <> - - - ->|  Food  |
+---------------------------+                        +--------+
              ^
             /_\
              |

              |

              |
        +-----------+
        |    Cat    |
        +-----------+

那是:

IAnimal和之间的关系Food是一种使用关系.这显示为与构造型«use»的依赖关系

IAnimal和之间的关系Cat是一种实现关系.

关联关系用于指示两个或更多个分类器之间的连接.这意味着至少有一个类具有另一种类型(或集合)的属性.实际上,属性和关联结束包含相同的信息并且可以互换.

所以,恕我直言,你描述的关系不应该被建模为关联.


漂亮的ascii艺术!
推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有