在某些构建过程中,某些对象的状态经常面临变化,如何对这些变化进行有效的管理?同时又维持高层模块的稳定?状态变化模块为这一问题提供了一种解决方案。
状态模式(State)
①State模式将所有与一个特定状态相关的行为都放入一个State的子类对象中,在对象状态切换时,切换相应的对象;但同时维持State的接口,这样实现了具体操作与状态转换之间的解耦。
②如果State对象没有实例变量,那么各个上下文可以共享同一个State对象,从而节省对象开销。
备忘录(Memento)
①Memento模式的核心是信息隐藏,即Originator需要对外接隐藏信息,保持其封装性。但同时又需要将状态保持到外界(Memento)。