你的位置:首页 > ASP.net教程

[ASP.net教程]设计模式学习笔记之状态模式


状态模式
    允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。

状态模式所涉及到的角色有:

    环境(Context)角色,也成上下文:定义客户端所感兴趣的接口,并且保留一个具体状态类的实例。这个具体状态类的实例给出此环境对象的现有状态。

    抽象状态(State)角色:定义一个接口,用以封装环境(Context)对象的一个特定的状态所对应的行为。

    具体状态(ConcreteState)角色:每一个具体状态类都实现了环境(Context)的一个状态所对应的行为。

适用场景: 

  1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。 

  2.一个操作中含有庞大的多分支结构,并且这些分支决定于对象的状态。