设计模式7(状态模式,备忘录模式)

Posted 后凤凰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式7(状态模式,备忘录模式)相关的知识,希望对你有一定的参考价值。

状态模式

    上下文对象通过改变状态来改变行为,看起来就像是改变了类型

分离状态,选择行为

状态模式

各种状态不能替换

上下文对象中维护的状态对象

分离状态,选择行为

策略模式

各种策略可以互相替换

   

观察者模式

   

行为是固定的,就是通知观察者,以达到触发联动的效果

单例模式

如有需要可以将状态设置为单例

   
       
       

 

备忘录模式

    在不破坏原发器封装的前提下,捕获其内部状态(备忘录),并在对象外部由"备忘录管理者"保存管理,

以便在操作后,恢复状态

    保存和恢复内部状态

TOriginator通过接口IMemento(窄接口)保存状态IState(宽接口)

|

|

TCareTaker.Create(TOriginator);                

宽窄接口,使得只有原发器可以获取备忘录中状态

命令模式

可以用备忘录保存命令前的状态,以便命令回滚

 

原型模式

 

如果原发器中的大多数状态都要保存,可以在备忘录中存入一个原发器的实例

以上是关于设计模式7(状态模式,备忘录模式)的主要内容,如果未能解决你的问题,请参考以下文章

GoF 23 种设计模式之状态模式和备忘录模式

设计模式之备忘录模式

设计模式——17.备忘录模式

PHP设计模式之备忘录模式

我的设计模式:备忘录模式

设计模式备忘录模式