UML(Unified Modeling Language,统一建模语言):
一种由图形符号表达的建模语言,其主要结构包括以下几个部分:
1.视图:UML视图用于从不同的角度来表示待建模系统。
2.图:UML图是描述UML视图内容的图形。比如:类图(Class Diagram)、用例图(Use Case Diagram)、对象图(Object Diagram)等
3.模型元素:指UML图中所使用的一些概念,它们对应于普通的面向对象概念,如类、对象、消息以及这些概念之间的关系,如关联关系、依赖关系、泛化关系等。
4.通用机制:UML提供的通用机制为模型元素提供额外的注释、信息和语义。这些通用机制也提供了扩展机制,允许用户对UML进行扩展,如定义新的建模元素、扩展原有元素的语义、添加新的特殊信息来扩展模型元素的规则说明等,以便适用于一个特定的方法或过程、组织或用户。
类图(Class Diagram):
类图UML2.0的13种图形中使用频率最高的两种UML图之一(另一种是用于需求建模的用例图),它用出现在系统中的不同类来描述系统的静态结构,主要用来描述不同的类以及它们之间的关系。
一、表示
1、类的UML图示:
在UML中,类使用包含类名、属性和操作且带有分隔线的长方形来表示,类一般由3部分组成:
第1行:类名(若类名为斜体字,表示抽象类)
第2行:字段/属性【表示方法:可见性 名称:类型 [ = 默认值 ]】
第3行:方法【可见性 名称(参数列表) [ : 返回类型]】
注:
①可见性表示:
+:public;
#:protected;
-:private;
②[]表示:可选
③参数列表的参数个数为任意的,多个参数之间用逗号","隔开
2、接口的UML图示:
注:名称上方多了<<interface>>字符来表示这个为接口
二、类之间的关系
1、关联关系:
两个类、或者类与接口之间语义级别的一种强依赖关系。如师傅和徒弟、班级和学生等,这种关系比依赖更强、不存在依赖关系的偶然性,关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的、独立的
代码表现:将1个类的对象作为另1个类的成员变量。
类图表示:实线连接。
UML中,关联关系通常包含如下几种形式:
①双向关联:如:顾客购买商品并拥有商品,相应地,卖出的商品总有某个顾客与之关联。
类图表示:实线连接表示
②单向连接:如:顾客拥有地址
类图表示:带箭头的实线表示,箭头指向被关联者
③自关联:如:一个节点类的成员又是节点类型的对象。
类图表示:带箭头的实现指向自身
④多重性关联:又称重数(Multiplicity)性关联,表示两个关联对象在数量上的对应关系。
类图表示:UML中,对象之间的多重性可以直接在关联直线上用一个数字或一个数字范围表示。
如:1..1:表示另1个类的1个对象只与该类的1个对象有关系;
0..*:表示另1个类的1个对象与该类的0个或多个对象有关系;
⑤聚合关系(Aggregation):表示has-a的关系,聚合关系表示整体与部分的关系,成员对象是整体对象的一部分,但成员对象可以脱离整体对象独立存在。如汽车发动机与汽车的关系,发动机为汽车一部分,但可独立存在。
代码实现聚合关系时,成员对象通常作为构造方法、Setter方法或业务方法的参数注入到整体对象中。
类图表示:带空心菱形的直线表示(可带箭头)。
⑥组合关系(Composition):表示contains-a的关系,组合关系也表示类之间整体与部分的关系,但组合关系中整体对象可以控制成员对象的生命周期,一旦整体对象不存在成员对象也将不存在。如头和嘴巴的关系,嘴巴是头的组成部分之一,且如果头没了,嘴巴也就没了。
代码实现组合关系时,通常在整体类的构造方法中直接实例化成员类。
类图表示:带实心菱形的直线表示(可带箭头)。
2、依赖关系:
依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。
类图表示:用带箭头的虚线表示,由依赖的一方指向被依赖的一方。
代码中,通常通过3种方式实现依赖关系:
①将1个类的对象作为另1个类中方法的参数;
②在1个类的方法中将另1个类的对象作为局部变量;
③在1个类的方法中调用另1个类的静态方法;
3、泛化关系:
泛化关系也就是继承关系,表示is-a的关系,用于描述父类与子类的关系。
类图表示:用带空心三角形的直线表示
4、接口与实现关系:
接口之间也可有与类之间关系类似的继承关系和依赖关系,但接口和类之间还有一种实现(Realization)关系。即:类实现了接口,类中的操作实现了接口中所声明的操作。
类图表示:带空心三角形的虚线表示。