类图--聚合、组合、依赖、实现关系

三、聚合关系

整体和部分的关系,一个类描述了一个较大的事物就是整体,它由较小的事物也就是部分组成。但部分可以独立于整体存在。

 

一个图书馆可以包含0个或多个书籍类,但书籍可以在没有图书馆的情况下单独存在 

has a的关系

'has a'是英语中用来表达人或事物之间'拥有关系'的动词短语,主要描述'某物归属于某人'或'某对象包含某组成部分'的基本概念。在语法结构上,该短语由第三人称单数形式的动词'has'加不定冠词'a'构成,后接可数名词单数形式,构成'主语+has+a+名词'的固定搭配。

 

整体拥有部分,实际上是一种特殊的关联

UML中,用一条线连接,整体一端用空心菱形表示,一个图书馆可以包含0个或多个书籍类

但书籍并不是图书馆的一部分,图书可以独立存在

大难临头各自飞

好的时候可以在一起,图书馆拆了,图书还能单独存在,再换一家

空心菱形只是区别一下整体和部分

 

 

 

四、组合关系

一个图书馆有多个房间,一个房间有多个书架

 是更强的关联关系

图书馆拆了,房间、书架就都不存在了

合为一体,同生死共进退,强聚合关系

部分不能独立于整体存在,整体不在了,部分也会消失

 

UML中,用实心菱形表示,头部指向整体

 

组合,拆都拆不动

聚合,只是临时在一起,在某些场景可以拆开

 

 

 

 

五、依赖关系

图书类,依赖于图书分类,来决定图书所属类别

图书类指向图书分类的一个引用,以便通过图书分类来检索图书

book使用bookcategory来完成分类。

虚线指向被依赖的事物

一个事物使用另一个事物的时候可以使用依赖

 

 

六、实现关系

 虚线+空心三角箭头表示,箭头指向接口

与泛化关系的符号类似,泛化是实线

圆形Circle 实现形状Shape的接口

还有矩形、三角形、各自实现Draw方法

 

 

完整类图

 

 

学校管理系统

  先基础类,不定义字段,

先把关系理出来,属性、方法后面设置

 

学生、教师都继承自人员类

人员类会抽象出一些公共部分,

共有属性:id,名称,

抽象方法:考核

学生和老师继承,并实现具体的抽象方法

 

现实中不会实例化员工类,所以用斜体表示,一个抽象类

 

班级和学生之间

学生离开了班级依然会独立存在

表示聚合关系,整体没了,个体依然存在

 

建筑、教室、楼层

组合关系

 

 

一个班级一个房间

一对一的关系

 

posted on 2025-04-17 10:34  张彦山  阅读(51)  评论(0)    收藏  举报