设计模式:状态模式(State)
2014-02-17 10:46
453 查看
定 义:当一个对象内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。
状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况,
把状态的判断逻辑转移到表示不同状态的一系列子类中,可以把复杂的逻辑简化。
结构图:
View Code
优点和缺点:
优点:将与特定相关的行为局部化,并且将不同状态的行为分割开来,这样可以消除庞大的条件分支语句,因为大的分支判断使得它们难以修改和扩展。
缺点:添加了许多状态类,使程序变得复杂。
状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况,
把状态的判断逻辑转移到表示不同状态的一系列子类中,可以把复杂的逻辑简化。
结构图:
Work w = new Work(); w.Hour = 9; w.WriteProgram(); w.Hour = 10; w.WriteProgram(); w.Hour = 12; w.WriteProgram(); w.Hour = 13; w.WriteProgram(); w.Hour = 14; w.WriteProgram(); w.Hour = 17; w.TaskFinished =true; w.WriteProgram(); w.Hour = 19; w.WriteProgram(); w.Hour = 22; w.WriteProgram(); #endregion
View Code
优点和缺点:
优点:将与特定相关的行为局部化,并且将不同状态的行为分割开来,这样可以消除庞大的条件分支语句,因为大的分支判断使得它们难以修改和扩展。
缺点:添加了许多状态类,使程序变得复杂。
相关文章推荐
- (Boolan)C++设计模式 <十> ——状态模式(State)和备忘录(Memento)
- C++实现设计模式 - STATE(状态)—对象行为模式(第二十个)
- java 设计模式之State(状态模式)
- 设计模式(3)- 状态设计模式State
- 设计模式学习总结:状态模式(State)
- C#设计模式系列:状态模式(State)
- 设计模式之十二:状态模式(State)
- 设计模式学习笔记--状态(State)模式
- 设计模式(19)-状态模式(State)
- 设计模式-状态模式(State)
- State模式(状态设计模式)
- 23设计模式之状态模式(State)
- Java设计模式之--状态模式(State)
- [C++设计模式] state 状态模式
- Java设计模式之从[游戏中的兵种状态转换]分析状态(State)模式
- 分析状态(State)模式的Java设计模式
- 设计模式之(十七)状态模式State
- 设计模式 ( 十七) 状态模式State(对象行为型)
- 我所理解的设计模式(C++实现)——状态模式(State Pattern)
- Java开发中的23种设计模式之二十:状态模式(State)