设计模式的关系
泛化关系
泛化关系用一条带空心箭头的直接表示,可以理解为继承
eg:汽车是基类,而suv这辆车就是他的子类
实现关系
实现关系用一条带空心箭头的虚线表示;
eg:将车作为一个接口类(模糊概念,比如跑的挺快),下边的小汽车或是自行车都是车这个模糊概念的实现
聚合关系
聚合关系用一条带空心菱形箭头的直线表示,如下图表示A聚合到B上,或者说B由A组成;
就是说,奎桑提、厄斐琉斯、瑟提 三个可以组成心之钢,奎桑提、厄斐琉斯、永恩也可以组成心之钢,而奎桑提可以单独拿出来作为一个英雄存在,也可以去组成秘术卫士
组合关系
组合关系用一条带实心菱形箭头直线表示,如下图表示A组成B,或者B由A组成;
可以理解为,奎桑提、厄斐琉斯、瑟提、永恩、伊泽瑞尔、凯隐(其中有一个是赛季之星,心之钢+1),这六个能组成七心之钢buff,但是如果你手残,卖掉一个,就没有办法组成七心之钢了,所以这六个人 对 七心之钢,单独拿出任意几个,都无法组成七心之钢
关联关系
关联关系是用一条直线表示的;它描述不同类的对象之间的结构关系;它是一种静态关系, 通常与运行状态无关,一般由常识等因素决定的;它一般用来定义对象之间静态的、天然的结构; 所以,关联关系是一种“强关联”的关系;
比如,乘车人和车票之间就是一种关联关系;学生和学校就是一种关联关系;
关联关系默认不强调方向,表示对象间相互知道;如果特别强调方向,如下图,表示A知道B,但 B不知道A;
依赖关系
依赖关系是用一套带箭头的虚线表示的;如下图表示A依赖于B;他描述一个对象在运行期间会用到另一个对象的关系;
与关联关系不同的是,它是一种临时性的关系,通常在运行期间产生,并且随着运行时的变化; 依赖关系也可能发生变化;