一、关联关系
- 单向关联:从一个类中可以访问另一个类的成员,有这个类的引用。
- 双向关联:两个类可以互相访问,互相有引用。
- 自身关联:本类中调用自身self or this.
- 多维关联:多个类互相之间有单向关联也有双向关联,还可以有自身关联,多个维度的关联。
- 一对多关联:一个类有多个类的引用。
- 多对多关联:多个类互相之间有单向关联也有双向关联。
- 当一个类的属性保存了对另一个类的一个实例的引用时,就产生了关联。
二、泛化关系:继承与实现
实现关系,类对接口的实现
- 在 UML 中, 泛化关系用来表示类与类, 接口与接口之间的继承关系。更准确的说是不仅有继承关系,还有类和接口的实现关系。
- 泛化关系包括继承关系和实现关系。
三、聚合关系
- 聚合关联是一种特殊的关联. 它表示类间的关系是整体与部分的关系. 简言之: 关联关系中的一个类描述了一个较大的事物, 它由较小的事物组成.
- 聚合关系中一个大类由多个小类组成,但是没有这个大类,这些小类可以再次聚合成另外一个大类而继续使用,这是与组合关系的区别。
- 聚合关系是关联关系的一种,是强的关联关系。
- 聚合是整体和部分之间的关系,例如汽车由引擎、轮胎以及其它零件组成。
- 聚合关系也是通过成员变量来实现的。但是,关联关系所涉及的两个类处在同 一个层次上,而聚合关系中,两个类处于不同的层次上,一个代表整体,一个代表部分。
- 通俗的讲:“汽车”有一个引擎和四个轮胎,如果这个“汽车”毁了,它的引擎和 轮胎还可以安在别的汽车上。
四、组合关系
- 整件拥有部件的生命周期, 所以整件删除时, 部件一定会跟着删除. 而且, 多个整件不可以同时共享同一个部件。
- 组合关系中一个大类由多个小类组成,没有这个大类,小类不能存在。
- 聚合关系是当描述一个大的事物时,大的事务可以包含小的事务,也可以不包含小的事物,比如图书馆和图书,而组合是一个大的事物的存在必须是由多个小的事务组成的,缺省了小的事务是不可以的。比如人与器官,人的器官可以移植,这是聚合关系;人与肢体,人没了,肢体便没有用了,这是组合关系。
- 组合关系是关联关系的一种,是比聚合关系还要强的关系。
- 它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。 通俗的讲:“人”有四个“肢体”,如果“人”死了,那么四个肢体也没有用处了。
五、依赖关系
- 对于两个相对独立的系统,当一个系统负责构造另一个系统的实例,或者依赖另一个系统的服务时,这两个系统之间体现为依赖关系.
- 一个类在某个时刻会用到另一个类,那么这两个类就是依赖关系。是一种短暂的关系。
- 依赖关系也是类与类之间的联结
- 依赖总是单向的。
- 依赖关系在代码中中体现为局部变量、方法的参数或者对静态方法的调用。
- 比如,人在出行的时候会依赖车的关系。
六、is-a,is-like-a,has-a是什么