UML简介:
统一建模语言(Unified Modeling Language)是一种为面向对象系统的产品进行说明,可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。
UML模型可以分为三类:
功能模型:从用户的角度展示系统的功能,常见的有用例图;
对象模型:采用对象,属性,操作,关联等概念展示系统结构和基础,常见的有类图,对象图,构件图,部署图;
动态模型:展现系统内部的行为。常见的有活动图,状态图,时序图,协作图;
其中我们最常用的是UML类图和时序图;类图展示了系统中各个类之间的关系,时序图展示了具体方法流程的执行过程和声明周期;下面我们主要介绍下UML类图:
类图基础属性:
+号表示public权限成员;-号表示私有成员;#号表示protected;~号表示default权限;成员下方的下划线表示static;斜体字母表示抽象的;
类与类之间的关系:依赖(dependency),泛化(generalization),关联(association),聚合(aggreagtion),组合(composition);
表示关系的强弱:依赖最弱,泛化最强,中间的关联,聚合,组合依次增强;
依赖:一种使用关系,一个类实现依赖另一个类协助,这两个类之间的关系体现为依赖;依赖关系用虚线箭头表示;示例:动物依赖氧气和水,调用新陈代谢方法需要传递氧气和水的示例作为参数;代码体现:局部变量,方法的参数或者对静态方法的调用;
泛化:泛化可以分为继承和实现;类之间的继承,接口之间的继承,类和接口之间的实现;继承关系使用空心三角+实线表示;实现用实心三角+实现来表示;示例:鸟类继承动物;大雁实现飞的接口;
关联:关联关系表示一个类的属性保存了另一个类的对象的引用;关联关系是类与类之间最常见的关系,聚合和组合也属于关联关系,只是关联关系比其他两种关系要弱;关联可以是单向的也可以是双向的;关联关系使用普通箭头+实线表示;示例:企鹅需要知道气候的变化,企鹅与气候之间就是关联关系;代码体现:成员变量;
聚合:表示一种弱的拥有关系,has-a的关系;两个对象具有各自的生命周期;聚合关心用、空心菱形+实线箭头表示;示例:大雁群可以有多只大雁;两个对象拥有不同的生命周期;代码体现:成员变量;
组合:整体与部分的关系,是一种强的拥有的关系,是一种contains-a的关系;部分和整体的生命周期一样;表示方法:实心菱形+实线箭头;示例:鸟和翅膀的关系;代码体现:成员变量;
引用大话设计中的描述图: