1. 类图的作用
UML是一种通用的面向对象建模语言;大家都知道面向对象的思想和类有不可分割的联系,但是类在 不同的语言下的表现形式又是不尽相同;但是,实际工作之前的设计建模工作又至关重要(越复杂的系统越重要),UML类图完全 跨越语言,为人们所接受;
2 类图模型
UML类图的模型
主要 包括 类、接口、类之间的关系;
类图说明
类图说明
可见性说明:+、#、-分别表示public、protected、private
类属性说明:抽象类或抽象方法用斜体表示
如果是接口,则在类名上方加 <<Interface>>字段和方法返回值的数据类型非必需静态类或静态方法加下划线
各部分格式说明:
属性格式:可见性 名称:类型 [ = 缺省值 ]
类的操作(方法)格式:可见性 名称(参数列表) [ : 返回类型]
2.1 类

2.2 接口
接口使用UML表示如下两种方式:


2.3 类之间的关系
类之间的关系目前 有 以下几种表示;具体的表示方法,见每种关系的详解

2.3.1 关联关系
关联关系 是 用于表示一类对象与另一类对象之间有联系;JAVA中 通常表现,一类对象是另一类对象的成员变量;分为一般关联关系、聚合关系和组合关系
表示方式:


2.3.2 组合关系
组合关系 是 关联关系的一种,且 部分 和 主体存在 同生同死的关系;
表示方式:

例如:鼻子是头的一部分。没有头也就没有鼻子

2.3.3 聚合关系
聚合关系 是 关联关系的一种,成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独立存在
表示方式:

例如:公司里有员工(人),人脱离的公司 还是会独立存在的

2.3.4 依赖关系
依赖(Dependency)关系是一种使用关系,它是对象之间耦合度最弱的一种关联方式,是临时性的关联。在代码中,某个类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法来完成一些职责。
表示方式:

例如:人使用拖把拖地,只是一种临时 人依赖拖把来完成一件事

3.4.5 泛化关系
泛化(Generalization)关系是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系,是一种继承关系,是 is-a 的关系
表示方式:

例如:老师和 学生都是 人的一种类型;人拥有的属性特点 老师和 学生都拥有

3.4.6 实现关系
实现(Realization)关系是接口与实现类之间的关系。在这种关系中,类实现了接口,类中的操作实现了接口中所声明的所有的抽象操作
表示方式:

例如:假设人 只是一个抽象,没有任何的实现;老师和学生分别是 人的一种具体实现


网友评论