您的位置:首页 > 其它

设计模式:状态模式(State)

2014-02-17 10:46 453 查看
定 义:当一个对象内在状态改变时允许改变其行为,这个对象看起来像是改变了其类

状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况,

把状态的判断逻辑转移到表示不同状态的一系列子类中,可以把复杂的逻辑简化。

结构图

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
优点和缺点

优点:将与特定相关的行为局部化,并且将不同状态的行为分割开来,这样可以消除庞大的条件分支语句,因为大的分支判断使得它们难以修改和扩展。

缺点:添加了许多状态类,使程序变得复杂。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: