统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息
类,接口,类图
1.类
类(Class)是指具有相同属性、方法和关系的对象的抽象,它封装了数据和行为,是面向对象程序设计(OOP)的基础,具有封装性、继承性和多态性等三大特性
在类的UML图中,使用矩形描述一个类的主要构成,矩形形垂直地分为三层,以此放置类的名称、属性和方法
一般类的类名用正常字体粗体表示,抽象类名用斜体字粗体
属性和方法都需要标注可见性符号,+代表public,#代表protected,-代表private,~代表default,_代表static
冒号:表明属性的类型和方法的返回类型
2.接口
接口(Interface)是一种特殊的类,它具有类的结构但不可被实例化,只可以被子类实现。它包含抽象操作,但不包含属性,描述了类或组件对外可见的动作
在接口的UML图中,接口由一个带有名称的小圆圈,抽象操作组成
3.类图
类图(ClassDiagram)是用来显示系统中的类、接口、协作以及它们之间的静态结构和关系的一种静态模型,类图中的类,与面向对象语言中的类的概念是对应的
类之间的关系
类与类之间的关系主要有六种:继承,实现,组合,聚合,关联,依赖等,这六种关系的箭头表示如下:
1.继承
继承关系也称泛化关系(Generalization),用于描述父类与子类之间的关系。父类又称作基类,子类又称作派生类
2.实现
实现关系(Implementation),主要用来规定接口和实现类的关系,类实现了接口,类中的操作实现了接口中所声明的所有的抽象操作
3.组合
组合关系(Composition):整体与部分的关系,但是整体与部分不可以分开
在组合关系中,整体对象可以控制部分对象的生命周期,一旦整体对象不存在,部分对象也将不存在,部分对象不能脱离整体对象而存在
4.聚合
聚合关系(Aggregation):整体和部分的关系,整体与部分可以分开
聚合关系也是通过成员对象来实现的,其中成员对象是整体对象的一部分,但是成员对象可以脱离整体对象而独立存在
5.关联
关联关系(Association):表示一个类的属性保存了对另一个类的一个实例(或多个实例)的引用
关联关系是类与类之间最常用的一种关系,表示一类对象与另一类对象之间有联系。组合、聚合也属于关联关系,只是关联关系的类间关系比其他两种要弱
关联关系有四种:双向关联、单向关联、自关联、多重数关联,双向的关联可以用带两个箭头或者没有箭头的实线来表示,单向的关联用带一个箭头的实线来表示
6.依赖
依赖关系(Dependence):假设A类的变化引起了B类的变化,则说名B类依赖于A类
总结
从关系的强弱来理解,各类关系从强到弱依次是:继承→实现→组合→聚合→关联→依赖