文章目录
1. 基本介绍
- UML - Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,用于帮组软件开发人员进行思考和记录思路的结果
- UML本身是一套符号的规定,这些符号用于描述软件模型中各个元素和他们之间的关系,比如:类,接口,实现,泛化,依赖,组合,聚合等
- 画UML图和写文章差不多,都是把自己的思路描述给别人看,关键在于思路和条理
2. UML类图
- 用于描述系统中的类(对象)本身的组成和类(对象)之间的各种静态关系
- 类之间的关系 : 依赖,泛化(继承),实现,关联,聚合,组合
1. 依赖关系(dependence)
- 只要在类中用到了对方,那么他们之间就存在依赖关系(A用到了B,那么A依赖B)
如果B类发生了变化,影响到A
我骑车去上班(我依赖于车),车坏了,会影响到我
- 小结
- 类中用到了对方(只要用到就是依赖)
- 1.类的成员属性 , 2.方法的返回值 , 3.接收的参数类型 , 4.方法中使用到
2. 泛化关系(generalization)
-
泛化关系实际上就是继承关系,他是依赖关系的特例
-
小结
泛化关系实际上就是继承关系
如果B类继承自A类,A和B存在泛化关系
剪头指向谁,就是继承谁
3. 实现关系(Implementation)
- 实现关系实际上就是A类实现B接口,他是依赖关系的特例
java中的接口,iOS中类似于协议delegate
符号是虚线+空三角剪头
4. 关联关系(association)
- 关联关系 : 类与类之间的联系,是依赖关系的特例
导航性 : 即双向关系或单向关系
多重性 : 可以一对多,或者多对一,多对多(比如一个老师对多个学生,一个学生也可以有多个老师)
- 单向一对一关系,
Person 关联 IDCard
两个类属于同级关系
比如:人呼吸空气,人必须依赖空气活着(强依赖,没有空气人就不能活了),但是空气没有人也没有关系
- 双向一对一关系
也是强关系,双方少好了谁都不行
比如:用户和订单(用户ID和订单号)
5.聚合关系(Aggregation)
- 表示整体和部分的关系,整体与部分可以分开.聚合关系是关联关系的特例
一台台式电脑由键盘(keyboard),显示器(nonitor),鼠标(mouse)等组成,组成电脑的各个配件是可以从电脑上分离出来的
电脑可以不依赖于显示器,鼠标等单独运行
强调的是整体和部分,各自有各自的生命周期,互不干扰,部分强调共享
比如:玩具车和电池(两者可以分开的,玩具车没有电池也能玩,电池可以装到别的玩具上,电池可以共享).玩具车是整体,电池是部分
6.组合关系(composition)
- 也是整体与部分的关系,但是整体与部分不可以分开.
比如人和身份证,人和头,
人和头是不可以分开的,所以是组合关系
人和身份证是可以分开的,就是聚合关系
共享生命周期,整体的生命周期结束了,部分的生命周期也结束