摘要:
1) 意图 定义一系列算法,把它们一个个封装起来,并且可以使它们可以相互替换。此模式使得算法可以独立于使用它们的客户而变化(行为定义为一个类) 2) 结构 其中: Strategy定义所有支持的算法的公共接口 ConcreteStrategy 定义某个具体算法 Context通过Strategy接口 阅读全文
摘要:
1) 意图 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类 2) 结构 其中: Context定义客户感兴趣的接口,维护一个ConcreteState子类的实例,这个实例定义当前状态 State定义一个接口以封装与Context的一个特定状态相关的行为 ConcreteSta 阅读全文
摘要:
1) 意图 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新 2) 结构 Subject提供注册和删除观测者的接口 Observer 定义一个抽象的更新接口 ConcreteSubject 是实际被观测的对象,当状态改变时,通知各个观测者 Con 阅读全文
摘要:
1) 意图 在不破坏封装性的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态。这样可以将对象恢复到原先保存的状态 2) 结构 其中 Memento (备忘录)存储Originator内部状态 Originator(原发器)创建一个Memento,用于记录当前时刻它的内部状态 Caretake 阅读全文
摘要:
1) 意图 用一个中介对象来封装一系列的对象交互,中介者使各个对象不需要显示地相互应用,从而使其耦合松散,并且可以独立地改变它们之间的交互 2) 结构 其中: Mediator定义一个接口用于各同事对象的通信 ConcreteMediator 通过协调各个Colleague 类对象实现协助行为 Co 阅读全文