UML建模
定义
UML:统一建模语言
使用软件:StarUML
分类
-
类图
类图是描述系统中的类,以及各个类之间的关系的静态视图,能够让我们在编写代码以前对系统有一个全面的认识。类图是一种模型类型,是一种静态模型类型。
-
时序图
-
用例图
-
协作图
-
状态图
-
活动图
-
构件图
-
部署图
类图(Class Diagram)
继承关系(Generalization)
表示类继承关系
用带三角箭头的实线表示,箭头指向父类

如上图,每一个矩形代表一个类,类中包含各自的方法。而上面表示的类层级关系为,MainActivity继承自BaseSkinActivity,BaseSkinActivity继承自BaseActivity。
实现关系(Realization)
表示类和接口的实现关系
用带三角箭头的虚线表示,箭头指向接口

IHttpRequest是一个接口,OkHttpRequest和XutilsRequest分别实现了这个接口。
依赖关系(Dependency)
这是一种使用关系,即一个类的实现需要另一个类的协助
代码体现:局部变量、方法的参数或者对静态方法的调用
用带箭头的虚线表示,箭头指向被使用者

我们一般在MainActivity中使用ButterKnife来绑定控件,这里MainActivity便依赖于ButterKnife。
关联关系(Association)
这是一种拥有关系,它让一个类知道另一个类属性和方法
代码体现在成员变量上。可以是单向也可以是双向的。
双向关联时由带两个箭头或者没有箭头的实线连接;单向关联时用带箭头的实线,箭头指向被拥有者

在上面的层级关系中,Teacher类和Student类是双向关联的,因为一个老师可以有教多名学生,一个学生也可以有多个科目的任课教师,同样的一个学生可以有多个课程,而课程作为一个抽象,不能拥有学生。
聚合关系(Aggregation)
这是一种整体和部分的关系,部分可以离开整体单独存在。如:公司和雇员,车和轮胎。
代码体现在:成员变量
用带空心菱形的实线,菱形指向整体

组合关系(Composition)
这也是一种整体和部分的关系,但部分不能离开整体而单独存在。如地球和人,人不能离开地球而单独存在。
用带实心菱形的实线表示,菱形指向整体。

网友评论