您的位置:首页 > 编程语言 > C#

C#面向对象模式设计第二十二讲:State 状态模式(行为型模式)

2012-03-22 17:21 573 查看
(根据MSDN WebCast相关课程整理)

对象拥有不同的状态,往往会行使不同的行为。如图:





通常,我们可以采用switch…case语句来解决问题,但是,如果这种状态变化比较频繁,那么,这必须导致对象与对象之间的紧耦合。当然,我们不要为使用设计模式而刻意的采用设计模式,因为一些简





单案例下,采用模式可能反而会使设计更加复杂化。我们建议的项目初期不要刻意的应用模式,而是根据需要,找到变化点,渐进的重构出设计模式。

没有采用设计模式时的情况:





当文档增加一种新的状态,如Printing时,由于紧耦合的存在,将需要同时破坏原枚举类型和Document类两个对象。

采用State模式的情况:





在这种模式下,我们只需要增加一个继承自StatedDocument的PrintingDocument类,在调用时给Document对象在statedDocument属性赋值就可以啦。同时,我们还可以在StatedDocument类中预计定义到状态的切换。

<完>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐