“状态变化”模式的两种——State状态模式,Memento备忘录模式

当某些对象的状态经常面临改变的时候(状态的改变也会意味着行为也会改变),如何对这些变化进行管理,并同时维持高层模块的稳定。这就是“状态变化”模式需要解决的。

State模式其实就是类似于策略模式,只是策略模式针对的是算法的变化,而我们这里是对象状态的改变,基本是一样的,(公司软件界面功能的跳转似乎就是用的状态模式,用一个类来存放操作与下一个该是什么界面。每个节点都变成单一的一个类,利用设置下一个界面来进行连接)
其模式就是将所有与一个特定状态相关的行为都放到一个State子对象中,则存在的对象状态切换时,切换对相应的对象,同时维持State的接口,实现了具体的操作与状态。在不同的状态之间引入不同的对象,使得状态转化之间变得更加明确简单,并且不易出错
(注意;为了节省对象的开销,可以使用单件模式,全局共享一个对象)
举例;【暂时一共有3种状态;open,close,connect】并且有两种方法Opr1,Op2.
在这里插入图片描述

备忘录(有些过时的模式)
概念;在软件构建过程中,某些对象的状态在转化过程中,由于某种需要回溯到对象之前的某个状态点,如果使用一些公有接口(也就是公共变量)来保存,这样就暴露了具体的细节。不利于封装性。
而备忘录其实就是专门设计一个类,Memento类来进行记录,保存类的状态。
在94年出的26种设计模式,到至今信息快速发展的今天,该模式基本已经过时。现在大多采用序列化来进行存放了。

猜你喜欢

转载自blog.csdn.net/zw1996/article/details/99704796