UML(Unified Modeling Language)统一建模语言是用来设计软件的可视化建模语言。特点是简单、统一、图行化、能表达软件设计中的动态与静态信息。
UML从目标系统的不同角度出发,定义了类图,例图,对象图,状态图,活动图,协作图,构件图,部署图等9种图
一、类图概述
类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等,类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。
二、类图的作用
1.在软件工程种,类是一种静态结构,描述了系统的类的集合,类的属性和类之间的关系,可以简化对类的理解。
2.类图是系统分析和设计阶段的重要产物,是形同编码和测试的重要模型。
三、类图表示法
在UML类图中,类包含类名、属性(field)、方法(method)如下图所示:一个学生类(Student)、包含id(学号),name(姓名),age(年龄),以及一个学习方法
属性/方法前面的“+”/“-”代表可见性,其符号只有三种:
+ :代表 public
- :代表private
# :代表protected
如果没有标注则代表默认default
属性的完整表达方式是:可见性 名称 : 类型 [ = 缺省值(初始化值,可有可无) ]
方法的完整表达方式是:可见性 方法名称(参数列表) [ :返回类型 ]
四、类与类之间关系的表达方式
4.1:关联关系
关联关系是对象之间的一种引用关系,用于表示一类对象与另一类对象之间的联系,如老师与学生等,关联关系是类与类之间最常用的一种关系,分为yiban关联关系、聚合关系、组合关系。
关联又分为单向关联,双向关联,自关联。
4.1.1:单向关联
上图Father类里面有一个类型为Children的成员变量属性,代表单向关联在UML中用一个带箭头的实线表示
4.1.2:双向关联
双向关联即Father类有Children类型的成员变量,同时Children类有Father类型的成员变量
在UML中双向关联有一条直线表示
4.1.3:自关联
自关联,即自己内部有一个成员变量类型为自身的变量
4.2:聚合关系
聚合关系是关联关系的一种,是一个强关联关系,是整体和部分之间的关系。
聚合关系也是通过成员对象来实现的,其中成员对象是整体对象的一部分,但成员对象可以脱离整体对象而独立存在。例如学校与老师的关系,学校包含老师,但如果学校关闭了,但老师仍然是存在的。即对象不依赖另一个对象而存在与组合关系相反
在UML用一个带空心菱形的实线来表示,菱形指向整体。
4.3:组合关系
组合关系表示类之间的整体与部分的关系,但它也是一种更加强的聚合关系。
在组合关系中整体可以控制部分对象的生命周期,一旦整体的对象不存在,那么部分的对象也不会存在,部分对象必须依赖整体对象的存在而存在。
在UML中用一个带实心菱形的直线来表示,菱形指向整体对象
4.4:依赖关系
依赖关系是一种使用关系,他是对象之间耦合度最弱的一种关联方式,是一个临时的关联。在代码中某个类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类即被依赖的类的某个方法来完成操作。
在UML中依赖关系用带箭头的虚线来表示,箭头指向被依赖的类。如下图司机类与汽车类,司机驾驶汽车
4.5:继承关系
继承关系是对象之间一种耦合度最高的一种关系,是父类与子类的关系。
在UML中用带空心箭头的实现表示,箭头指向父类。例如子类继承父类
4.6:实现关系
实现关系指的是类与接口之间的关系,在这种关系中,类实现接口并重写接口中的所有抽象方法。
在UML中实现关系用带空心箭头的虚线表示,箭头有类指向接口