uml建模设计与分析从新手到高手(高级程序猿必须掌握UML建模)
uml建模设计与分析从新手到高手(高级程序猿必须掌握UML建模)组合关系表示类之间整体与部分的关系,但是部分不能脱离整体而独立存在。一旦整体对象不存在,部分对象也将不存在,是同生共死的关系。例如:狗和马都是动物,动物是具有可捕食、可运动、可睡眠抽象概念,马和狗实现了具体捕食、运动、睡觉的功能。继承关系中,子类继承父类的所有功能,父类所具有的属性、方法,子类应该都有。子类中除了与父类一致的信息以外,还包括额外的信息。如下图所示:实现关系主要用来描述接口和实现类的关系。接口(又称抽象类)是方法的集合,在实现关系中,类实现了接口,类中的方法实现了接口声明的所有方法。
uml类图介绍UML类图是一种结构图,用于描述类结构以及类与类之间的关系,是一种静态建模方法。类图中的类,与面向对象语言中的类的概念是对应的。
类图的3个基本组件:类名、属性、方法。
类关系类与类之间的关系主要有六种:继承(泛化)、实现、组合、聚合、关联和**依赖,**这六种关系的箭头表示如下
继承关系(泛化关系)继承关系也称泛化关系,用于描述父类与子类之间的关系。父类又称作基类,子类又称作派生类。
继承关系中,子类继承父类的所有功能,父类所具有的属性、方法,子类应该都有。子类中除了与父类一致的信息以外,还包括额外的信息。如下图所示:
实现关系实现关系主要用来描述接口和实现类的关系。
接口(又称抽象类)是方法的集合,在实现关系中,类实现了接口,类中的方法实现了接口声明的所有方法。
例如:狗和马都是动物,动物是具有可捕食、可运动、可睡眠抽象概念,马和狗实现了具体捕食、运动、睡觉的功能。
组合关系组合关系表示类之间整体与部分的关系,但是部分不能脱离整体而独立存在。一旦整体对象不存在,部分对象也将不存在,是同生共死的关系。
例如:人由头、身体、脏器等组成,二者不可分割,共同存在。
聚合关系聚合关系表示类之间**整体和部分的关系,**成员是整体的一部分,成员可以脱离整体独立存在。
例如:公交司机和工服、工帽是整体和局部的关系,但是工服、工帽可以独立存在,工服和工帽可以穿戴给其他人群,公交司机也可以穿戴其他服饰。
关联关系关联关系表示一个类的属性保存了对另一个类的实例或多个实例。
关联关系是类与类之间最常用的一种关系,表示一类对象与另一类对象之间有联系。组合、聚合也属于关联关系,只是存在关联关系的类关系性较弱。
关联关系有四种:双向关联、单向关联、自关联、多重数关联。
在UML中,双向关联可以有两个箭头或没有箭头,单向的关联或自关联有一个箭头。
在多重关联关系中,可以在关联直线上增加一个数字,表示与之对应的另外一个类对象个数;
- 1..1: 仅有一个
- 0..*: 零个或多个
- 1..*: 一个或多个
- 0..1: 没有或一个
- m..n: 最少m个,最多n个,其中 m<n
例如:汽车和司机,一辆车对应特定司机,一个司机可以开多辆车
依赖关系依赖关系是一种“使用”关系,特定事物的改变会影响到使用该事物的其他事物,假设A类的变化引起了B类的变化,则说说明B类依赖于A类。大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。
例如,汽车依赖石油,如果没有石油,汽车无法行驶。
总结类图这六种类关系中,各类关系从强到弱依次是:继承 → 实现 → 组合 → 聚合 → 关联 → 依赖。如下是完整的一张UML关系图。
其中组合 、 聚合 、 关联这三种类关系的代码结构一样,都是用类属性保存另一个类的对象,所以要通过内容间的关系来加以区别。
最后附上一个完整实例:
最后喜欢我的朋友们,麻烦点一波关注,谢谢!