大家好,又见面了,我是你们的朋友全栈君。
类是具有相似结构、行为和关系的一组对象的抽象。类图则是根据系统中的类以及各类之间的关系描述系统的静态视图。画类图首先找系统中出现的名词,再通过相应的关系把抽象出来的类联系起来。
在UML中关于类图这部分主要介绍了类的基本元素,类之间的关系以及类图的构成,最后又更进一步介绍了类图的相关知识。
类图的关系大致可以分为以上几种,下面再具体介绍一下这几种关系:
一.关联
关联即拥有,表示一个类知道另一个类的属性和方法,比如老师与学生这两个类之间的关系就是关联。也可以理解为使用,比如学生与单放机,所以关联表示了两个类之间的通信。
1.修饰
修饰的三要素:名称(Association name),角色(Role),多重性(Multiplicity)。如图所示:
多重性表示一个关联的实例中有多少个相互连接的对象,具体情况可分为
表示方式 |
多重性说明 |
1..1 |
表示另一个类的一个对象只与一个该类对象有关系 |
0..* |
表示另一个类的一个对象与零个或多个该类对象有关系 |
1..* |
表示另一个类的一个对象与一个或多个该类对象有关系 |
0..1 |
表示另一个类的一个对象没有或只与一个该类对象有关系 |
m..n |
表示另一个类的一个对象与最少m、最多n个该类对象有关系 (m<=n) |
2.普通关联
单向关联:订单和商品,订单中包括商品,但是商品并不了解订单的存在。
双向关联:订单和消费者,订单属于消费者,消费者拥有一些特定的订单。
两个类之间的多种关联:老师既可以给学生上课,还可以给学生答疑。
一个类和多各类的关联:一个学生可以是一个学生,也可以是一个老师。
3.聚合
聚合是整体和部分的关系,分开后可以独立存在,无明显的附属关系。
4.组合
组合也是整体和部分之间的关系,但是整体不存在,个体也不能单独存在,有附属关系。
二.依赖
依赖是一种使用关系,类A要完成某个功能必须引用类B,则A与B存在依赖关系。
例如我们需要用电脑编写代码,这是我们就依赖于电脑。
三.泛化
泛化和继承的概念是一样的,即“is a kind of ”的关系,不同的是泛化使用在分析、设计阶段,继承使用在实施阶段。
四.实现
用来规定接口和实现接口的类的关系。
自己画类图的时候,第一个难题就是不能准确的找出系统中的类,类与类之间的关系也不是很清楚,下面是机房收费系统的总的类图,感觉抽象还是不太好,希望能在大家的博客中理解的更好。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/105784.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...