状态模式
上下文对象通过改变状态来改变行为,看起来就像是改变了类型
分离状态,选择行为
状态模式 |
各种状态不能替换 |
上下文对象中维护的状态对象 |
分离状态,选择行为 |
策略模式 |
各种策略可以互相替换 |
||
观察者模式 |
行为是固定的,就是通知观察者,以达到触发联动的效果 |
||
单例模式 |
如有需要可以将状态设置为单例 |
||
备忘录模式
在不破坏原发器封装的前提下,捕获其内部状态(备忘录),并在对象外部由"备忘录管理者"保存管理,
以便在操作后,恢复状态
保存和恢复内部状态
TOriginator通过接口IMemento(窄接口)保存状态IState(宽接口)
|
|
TCareTaker.Create(TOriginator);
宽窄接口,使得只有原发器可以获取备忘录中状态
命令模式 |
可以用备忘录保存命令前的状态,以便命令回滚 |
|
原型模式 |
如果原发器中的大多数状态都要保存,可以在备忘录中存入一个原发器的实例 |