快捷搜索:  汽车  科技

uml建模设计与分析从新手到高手(高级程序猿必须掌握UML建模)

uml建模设计与分析从新手到高手(高级程序猿必须掌握UML建模)组合关系表示类之间整体与部分的关系,但是部分不能脱离整体而独立存在。一旦整体对象不存在,部分对象也将不存在,是同生共死的关系。例如:狗和马都是动物,动物是具有可捕食、可运动、可睡眠抽象概念,马和狗实现了具体捕食、运动、睡觉的功能。继承关系中,子类继承父类的所有功能,父类所具有的属性、方法,子类应该都有。子类中除了与父类一致的信息以外,还包括额外的信息。如下图所示:实现关系主要用来描述接口和实现类的关系。接口(又称抽象类)是方法的集合,在实现关系中,类实现了接口,类中的方法实现了接口声明的所有方法。

uml类图介绍

UML类图是一种结构图,用于描述类结构以及类与类之间的关系,是一种静态建模方法。类图中的类,与面向对象语言中的类的概念是对应的。

类图的3个基本组件:类名、属性、方法。

类关系

类与类之间的关系主要有六种:继承(泛化)实现组合聚合关联和**依赖,**这六种关系的箭头表示如下

uml建模设计与分析从新手到高手(高级程序猿必须掌握UML建模)(1)

继承关系(泛化关系)

继承关系也称泛化关系,用于描述父类与子类之间的关系。父类又称作基类,子类又称作派生类。

继承关系中,子类继承父类的所有功能,父类所具有的属性、方法,子类应该都有。子类中除了与父类一致的信息以外,还包括额外的信息。如下图所示:

uml建模设计与分析从新手到高手(高级程序猿必须掌握UML建模)(2)

实现关系

实现关系主要用来描述接口和实现类的关系

接口(又称抽象类)是方法的集合,在实现关系中,类实现了接口,类中的方法实现了接口声明的所有方法。

例如:狗和马都是动物,动物是具有可捕食、可运动、可睡眠抽象概念,马和狗实现了具体捕食、运动、睡觉的功能。

uml建模设计与分析从新手到高手(高级程序猿必须掌握UML建模)(3)

组合关系

组合关系表示类之间整体与部分的关系,但是部分不能脱离整体而独立存在。一旦整体对象不存在,部分对象也将不存在,是同生共死的关系。

例如:人由头、身体、脏器等组成,二者不可分割,共同存在。

uml建模设计与分析从新手到高手(高级程序猿必须掌握UML建模)(4)

聚合关系

聚合关系表示类之间**整体和部分的关系,**成员是整体的一部分,成员可以脱离整体独立存在。

例如:公交司机和工服、工帽是整体和局部的关系,但是工服、工帽可以独立存在,工服和工帽可以穿戴给其他人群,公交司机也可以穿戴其他服饰。

uml建模设计与分析从新手到高手(高级程序猿必须掌握UML建模)(5)

关联关系

关联关系表示一个类的属性保存了对另一个类的实例或多个实例

关联关系是类与类之间最常用的一种关系,表示一类对象与另一类对象之间有联系。组合、聚合也属于关联关系,只是存在关联关系的类关系性较弱。

关联关系有四种:双向关联单向关联自关联多重数关联

在UML中,双向关联可以有两个箭头或没有箭头,单向的关联或自关联有一个箭头。

在多重关联关系中,可以在关联直线上增加一个数字,表示与之对应的另外一个类对象个数;

  • 1..1: 仅有一个
  • 0..*: 零个或多个
  • 1..*: 一个或多个
  • 0..1: 没有或一个
  • m..n: 最少m个,最多n个,其中 m<n

例如:汽车和司机,一辆车对应特定司机,一个司机可以开多辆车

uml建模设计与分析从新手到高手(高级程序猿必须掌握UML建模)(6)

依赖关系

依赖关系是一种“使用”关系,特定事物的改变会影响到使用该事物的其他事物,假设A类的变化引起了B类的变化,则说说明B类依赖于A类。大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数

例如,汽车依赖石油,如果没有石油,汽车无法行驶。

uml建模设计与分析从新手到高手(高级程序猿必须掌握UML建模)(7)

总结

类图这六种类关系中,各类关系从强到弱依次是:继承实现组合聚合关联依赖。如下是完整的一张UML关系图。

其中组合聚合关联这三种类关系的代码结构一样,都是用类属性保存另一个类的对象,所以要通过内容间的关系来加以区别。

最后附上一个完整实例:

uml建模设计与分析从新手到高手(高级程序猿必须掌握UML建模)(8)

最后

喜欢我的朋友们,麻烦点一波关注,谢谢!

猜您喜欢: