设计模式—“状态变化”

在组件构建过程中,某些对象的状态经常面临变化,如何对这些变化进行有效的管理?同时又维持高层模块的稳定?"状态变化"模式为这一问题提供了解决方案。

典型模式有:Memento、State

一、State

动机

在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化,比如文档处于只读状态,其支持的行为和读写状态支持的行为就可能完全不同。

如何在运行时根据对象的状态来透明地更改对象的行为?而不会为对象操作和状态转化之间引入紧耦合?

模式定义

允许一个对象在其内部状态改变时改变它的行为。从而使对象看起来似乎修改了其行为。

​ ——《设计模式》GoF

结构

设计模式—“状态变化”_第1张图片

  • Context (环境)

    • 定义客户端感兴趣的接口
    • 维护一个 ConcreteState 子类的实例,这个实例定义当前状态
  • State (状态)

你可能感兴趣的:(教练,我想学设计之禅,设计模式)