今天是设计模式连载的第四篇,记录了适配器模式,迭代器模式,组合模式,观察者模式。
适配器模式
理解:该设计模式主要是应用在接口对接时,用来将异构的数据类型进行一次封装,达到与系统内部其他数据类型一致的表象。
分析/推导:该设计模式理解运用起来比较简单,就不再过多赘述。
迭代器模式
理解:典型的就是java.util.Iterator
, 也比较好理解,只是我们平常使用过程中一般不在意而已。
组合模式
理解:该设计模式主要是应用在具有树形结构的数据上,我们需要抽象出树形结构上树枝节点和叶子节点的公共部分,是的无论是单个叶子结点还是具有继承关系的树枝节点都能够对外拥有相同的表象。
分析/推导:
- 该设计模式主要是用来简化代码结构,抽象出公共部分,以简化后期的修改以及方便外部的调用。
- 试想下,如果树根节点,树枝节点,叶子结点分别定义,如果后期要修改,则三类节点均需修改。同时,外部调用也需要感知三种不同的类型。
观察者模式
理解:该设计模式就是发布/订阅模式,被观察者会将自己的数据变动消息发布出去给观察者。被观察者和观察者之间的关系是一对多的关系。
分析/推导:
- 被观察者可以增加删除观察者
- 被观察者完成操作后可以主动调用所有关联的被观察者的update方法。如
java.util.Observer#update
- 典型的可以查看JDK中提供的
java.util.Observer, java.util.Observable