本文主要是介绍领悟状态模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
以前总以为状态模式就是给每个状态一个类封装,现在才知道自己的理解可笑。状态模式其实仅仅是将一个对象的“状态部分”抽象出来。所以,它能很方便地对原来不使用这个模式的代码进行重构。因为我们做的只是添加代码,而不必修改太多原来的代码。
另外,状态模式的效率也相当高,而不象有些模式,为了扩展性而牺牲了效率。
状态模式有点像策略模式,因为本质上它就是:在不同的状态下,系统自动采取不同的策略。
它比策略模式所多的一点是:这个策略还要负责状态的转换。所以,具体策略者必须持有原对象的引用(在JAVA中,它是用函数调用时的参数传递来做到这一点;C++中,我觉得使用虚基类的成员变量传递更方便一些)。
看书本的介绍,总不是很明白,后来丢开课本,自己画UML图来思考,这才恍然大悟。这也许是学习设计模式的一个很好的“学习模式”吧:)
这篇关于领悟状态模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!