文章是学习Graphic Design Patterns笔记
先上一图,按住不表,先介绍几种关系
泛化关系
实现类与基类关系,又称继承关系,isa关系(xxxx is a yyyy), 比如猫是动物 (猫 is a 动物),suv是小汽车,(suv is a 小汽车) ,下图表示为A继承自B
- 表示为: 带实线的空心三角箭头
_____|>
实现关系 realize
车子是抽象概念,生活中说一个人说话很飘,说不到重点,不具体,就是经常使用抽象的概念词,我家有车
是说有自行车🚲还是小汽车🚘呢还是法拉利呢,大部分的人会觉得很高大上是吧,因为用了抽象概念。
小汽车是车的实现(具体化)
- 表示为带虚线的空心三角箭头
----|>
,告诉你这是虚的
-- 所以有时候设计上玩点实现关系看起来很高级
聚合关系 aggregation
用于实体对象之间表示成体有部分组成的语义;例如一个部门由多个员工聚成,当部门解散了,员工也还在,所以有人心散了队伍不好带啊,说的就是聚合关系
A聚合到B表示为
- 形象记忆方法为,带实线的空心菱形
____◇
他两也是聚合关系
组合关系 composition
与聚合关系类似,表示整体与部分的关系,比如公司由部门组成;
区别是公司不存在了,部门就不存在了,皮之不存,毛将焉附!!
- 形象记忆为带实线的实心菱形
___黑菱形
(谁有黑菱形表情发我一下...),实锤了,很重的关系,关系散了就没了的那种
关联关系 (代表/认识/知道关系)
有分单向和 双向关系
乘车人和车票就是关联关系,你认识我我认识你,叫双向关系,你认识我我不知道你就叫单向关系
- 形象记忆为一条实线,如果表示方向就用箭头
→
依赖关系 dependency
表示一个对象在运行期间会用到另一个对象的关系
特点: 随着运行的变化,依赖关系也会变化,正所谓在家靠父母出外靠朋友
-
形象记忆,A依赖B,带虚线的箭头,A是你,B是你父母或朋友
回到最前一图
我们可以知道
- 车子是抽象的,小汽车和自行车和它是实现关系
- 轮胎和发动机和小汽车是组合关系
- SUV是小汽车的一种,isa 泛化关系(继承)
- 班级由学生组成,班级散了学生都还在,组合关系
- 身份证代表这个学生,这是关联关系
- 学生上学要骑自行车,依赖关系