设计模式中常见的关系举例

设计模式就是面向对象的一种数据结构

关联关系

关联可以是双向关联、单向关联,其中单向关联还可以包含一种特殊的关联就是自关联。

关联可以是一对多、多对一等多种模式

双向关联

image

单向关联

image

自关联

image

整体和部分的关系

整理和部分的关系包含:聚合、复合(组合)

聚合是空心箭头表示,复合用实心箭头表示,含义是:复合比聚合关系更加强烈, 复合的成员消亡了,复合整体也就消亡了。

聚合(Aggregation)

汽车和变速器的关系是聚合关系,意思就是汽车报废了,变速器不一定报废,没有太强烈的关系。

image

复合

一只狗(Dog)有一个心脏(Heart)是严格的复合关系,不可拆解,二者相互生存

image

依赖关系

当一个事物的改变将会影响另一个事物的状态时,我们称为依赖关系,就是一个事物要用到另一个事物。

驾驶员(Driver)要依赖车(Car), 没有Car,Driver将没有车可开。

image

继承关系

image

抽象类

在Java中叫接口(Interface)、C++中叫纯虚基类、Objective-C中叫协议(Protocol)

image

从架构的角度看类和类之间的关系,类和类之间是怎么继承的、派生的、复合的、聚合的、关联的等,类和类之间的关系就会产生对象和对象之间的关系,对象关系就是软件设计的基本形态。所以在软件编写时,设计先行的原则就在于此,由需求产出所需的什么对象,对象之间又是什么关联,就会产生对应的类。业务需求的设计就很清晰的了。

你可能感兴趣的:(设计模式中常见的关系举例)