agn*_*zka 4 uml class-diagram associations
我经常对UML感到困惑,这种情况也不例外.假设我有一个接口IAnimal,类Food和Cat:
interface IAnimal {
void Feed(Food food);
}
class Cat : IAnimal {
void Feed(Food food) {
//code
}
}
Run Code Online (Sandbox Code Playgroud)
我有3个关于为这3个元素绘制UML类图的问题:
我想我应该使用IAnimal和Food或Cat and Food之间的关联.在关联线的一侧是否应该有箭头,如果是,那么在哪一侧以及为什么存在?
如果我在图上将Feed作为IAnimal方法编写,我应该在类Cat中编写方法Feed还是仅编写其他Cat方法?
最重要的是:IAnimal和食物,猫和食物之间的联系,还是两者兼而有之?
too*_*kit 14
UML定义了许多关系类型.
关系有许多不同的符号:
形象地
+---------------------------+
| <<interface>> |
| IAnimal |
+---------------------------+ +--------+
| + Feed(food: Food) : void |- - - - <<use>> - - - ->| Food |
+---------------------------+ +--------+
^
/_\
|
|
|
+-----------+
| Cat |
+-----------+
Run Code Online (Sandbox Code Playgroud)
那是:
IAnimal和之间的关系Food是一种使用关系.这显示为与构造型«use»的依赖关系IAnimal和之间的关系Cat是一种实现关系.关联关系用于指示两个或更多个分类器之间的连接.这意味着至少有一个类具有另一种类型(或集合)的属性.实际上,属性和关联结束包含相同的信息并且可以互换.
所以,恕我直言,你描述的关系不应该被建模为关联.