设计模式就是面向对象的一种数据结构
关联关系
关联可以是双向关联、单向关联,其中单向关联还可以包含一种特殊的关联就是自关联。
关联可以是一对多、多对一等多种模式
双向关联
单向关联
自关联
整体和部分的关系
整理和部分的关系包含:聚合、复合(组合)
聚合是空心箭头表示,复合用实心箭头表示,含义是:复合比聚合关系更加强烈, 复合的成员消亡了,复合整体也就消亡了。
聚合(Aggregation)
汽车和变速器的关系是聚合关系,意思就是汽车报废了,变速器不一定报废,没有太强烈的关系。
复合
一只狗(Dog)有一个心脏(Heart)是严格的复合关系,不可拆解,二者相互生存
依赖关系
当一个事物的改变将会影响另一个事物的状态时,我们称为依赖关系,就是一个事物要用到另一个事物。
驾驶员(Driver)要依赖车(Car), 没有Car,Driver将没有车可开。
继承关系
抽象类
在Java中叫接口(Interface)、C++中叫纯虚基类、Objective-C中叫协议(Protocol)
从架构的角度看类和类之间的关系,类和类之间是怎么继承的、派生的、复合的、聚合的、关联的等,类和类之间的关系就会产生对象和对象之间的关系,对象关系就是软件设计的基本形态。所以在软件编写时,设计先行的原则就在于此,由需求产出所需的什么对象,对象之间又是什么关联,就会产生对应的类。业务需求的设计就很清晰的了。