UML介绍
统一建模语言(UML,UnifiedModelingLanguage)是面向对象软件的标准化建模语言。UML因其简单、统一的特点,而且能表达软件设计中的动态和静态信息,目前已成为可视化建模语言的工业标准。它是一种标准的图形化建模语言,是面向对象分析与设计的一种标准表示。
它的本意是可以使IT人员进行程序设计的建模。它不是程序设计语言,而是建模语言。
UML类图
各种关系的强弱顺序:
泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖
1.泛化关系(Generalization)
泛化关系也称为继承关系,表示一般与特殊的关系,指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系,在Java中通过关键字extends实现关系。例子:鸟是动物的一种,即有鸟的特性也有动物的共性。
2.实现关系(Realization)
实现关系指的是一个class类实现interface接口(可以是多个)的功能,在Java中通过关键字implements实现关系。例子:大雁类实现飞接口。
3.依赖关系(Dependency)
依赖关系是一种使用的关系,即一个类的实现需要另一个类的协助,这种关系是具有偶然性的、临时性的、非常弱的。代码体现为:局部变量、方法的参数或者对静态方法的调用 。例子:动物的生存需要依赖水和氧气。
4.关联关系(Association)
关联关系表示类与类之间的联接,可以有方向,可以是单向关联,也可以是双向关联。它使一个类知道另一个类的属性和方法,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的。例子:企鹅受气候影响,箭头指向气候。
5.聚合关系(Aggregation)
聚合关系是强的关联关系;是整体与部分的关系,且部分可以离开整体而单独存在。关联和聚合在语法上无法区分,必须考察具体的逻辑关系。例子:雁群和大雁是整体与部分的关系,大雁离开雁群仍然可以单独存在。比如汽车包含了发动机,而发动机脱离了汽车也能单独存在。
6.组合关系(Composition)
组合关系也是整体与部分的关系,也是关联关系的一种,这种关系比聚合更强,也称为强聚合,它同样体现整体与部分间的关系,但此时整体与部分是不可分的,部分不能离开整体而单独存在,整体的生命周期结束也就意味着部分的生命周期结束。例子:鸟和翅膀就是整体和部分的关系,它们两个是不可分的。如公司和部门是整体和部分的关系,没有公司就不存在部门。