首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

设计方式回顾之七:状态模式(State)

2012-11-25 
设计模式回顾之七:状态模式(State)设计模式回顾系列文章: 主要针对工作中常用常见的设计模式进行整理、总结

设计模式回顾之七:状态模式(State)

设计模式回顾系列文章: 主要针对工作中常用常见的设计模式进行整理、总结,同时分享以供大家拍砖。

------------------------------------------------

状态模式:

当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。

?

主要解决:当控制一个对象状态的条件表达式过于复杂时,把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。

使用场景:

当一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的行为时,就可以考虑使用状态模式。

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

?

程序实现:

抽象状态类,定义一个与Context相关的状态接口handle:

public static void main(String[] args){Context context = new Context(new ConcreteStateA());//初始化状态为Acontext.changeState();//每次请求都切换状态context.changeState();context.changeState();context.changeState();}

?

举例:用于消除庞大的条件分支语句的情况,通过把各种状态转移逻辑分布到State的子类之间,减少相互间的依赖。

?

热点排行