首先从语序上面来说
顾客有地址 关联关系 从顾客出发的箭头,黑三角箭头
然后 你有我,我有你,应该是两个箭头,于是消了,就变成一个直线
自己关联自己,就是自己给自己画箭头。
接下来是继承关系,这个虚吗?这个可不虚,他们有物理结构上的关联(虽然没有像关联那样,写在类内部,但继承,你懂得,可以访问到父类),所以就是 实线 的 空心三角形。
同样的也是 A继承B,那么就是 A指向B。
然后下一个关系聚合关系,注意注意,还是要保证谁是主要的,老师聚合成了学校。这么说
那就是从老师出发,然后一个空菱形指向学校。主体是老师,学校没了,老师还在。
组合关系,强关系,手指组成了手,手没了,手指还在吗?显然是没有了,所以这里是黑菱形箭头,而且是实线。
另一个比较虚的就是实现关系了,说他虚吧,也是一样的,我不关注你怎么实现的,我只用把接口定义好了就可以了。 实现类 --虚线 +虚线三角形 - 被实现类(接口)
下一个是 依赖关系,这一听就不是什么强关系,而且像上面提到的,都是真真切切的,结构设计上就是作为内部属性的。这个只是依赖,很弱,就是虚线了。(就是像一些局部变量,像一些形参用到了其他的类,就是当前这个类依赖那个类了),也是 依赖 --虚线 +虚线箭头 - 被依赖类
(我觉得还是对于被依赖的东西来说,我压根就不关注你)
起码根据我的逻辑,谁是主语,那么箭头就是从谁出发的。
关联关系: a里面有b,a关联了b。
继承关系:狗继承了狼。
组合关系:手指组成了手,手组成了身体(的一部分),从手指出发,从手出发
聚合关系:老师聚集在了学校,
实现关系:汽车实现了可以开,自行车实现了可以骑
依赖关系:人依赖地铁(人坐地铁,飞机,汽车太多了)(非常非常弱的关系,人可以依赖的东西太多了,所以他就是最简单的画法,虚线 + 虚线箭头)
再过一遍,什么线,什么箭头
关联关系:实线 三角 实心
继承关系:实线 三角 空心
组合关系:实线 菱形 实心的(相较于聚合,是更强的关系,因为组合成的东西没有了,这些部件也没用了)
聚合关系:实线 菱形 空心
实现关系:虚线 虚线三角形
依赖关系:虚线 虚线箭头
自己看看能不能认出这些关系吧
从上到下依次答案是:
关联
双向关联(互相关联)
自关联
继承
组合
聚合
实现
依赖
线下面试让我写装饰器的UML类图,没写出来。遂学之。