摘要:
第三十一章 中介者模式(Mediator pattern)
意图
用一个中介者对象将一些列对象交互封装,从而降低这些对象间的耦合性并且可以独立地改变对象间的交互关系。
使用场合
由于对象间交互复杂,导致相互依赖关系结构混乱,难以理解。
由于需要与多个对象通信,所以必须饮用这些对象,使该对象难以复用。
...... 阅读全文
摘要:
第三十章 观察者模式(Observer Pattern)
意图
定义对象间一对多的关系,一个对象变化时,所有依赖它的对象都得到通知并被自动更新。一个最典型的例子就是Windows中的音量控制器,我们可以打开多个音量控制器窗口。当其中一个变化的时候,其余均随之变化。
...... 阅读全文
摘要:
第二十九章 状态模式(State Pattern)
意图
状态模式的目的是使对象在不同的状态下改变其行为,可以理解为在不同的上下文中,相同的动作导致不同的结果(或导致动作的目的不同)。
使用场合
1.一个对象的行为取决于其运行的状态并且运行时刻根据状态改变自己的行为,如TCP链接对象载Listening、Established盒Closed状态下,对O
pen、Close和Accept执行不同的操作。
...... 阅读全文
摘要:
第二十八章 备忘录模式(Memonto Pattern)
意图
在不破坏封装性的前提条件下,捕获一个对象的内部状态,然后在该对象之外保存这个状态。以后在需要的时候可以将该对象恢复到原先保存的状态。
结构
1.Memonto(备忘录):保存Originator(原发器)对象的内部状态,Originator根据需要决定保存哪些内部状态,防止自身以外的其它对象访问备忘录。备忘录实际上是由两个接口,其中Caretaker(管理者)只能看到备忘录的窄接口,即它只能将备忘录传递给其他对象;而原发器可以看到一个宽接口,允许他访问回到原先状态所需的所有数据,理想的情况是只允许生成原发器访问本备忘录的内部状态。
...... 阅读全文
摘要:
第二十七章 迭代器模式(Iterator Pattern)
意图
提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。
使用场合
1.访问一个聚合对象的内容而无需暴露他的内部表示。
2.支持对聚合对象的多种遍历。
...... 阅读全文