文章来源本人的博客:http://codelifeliwan.github.io/ 转载请注明出处
查看[设计模式]系列内容请点击:https://www.jianshu.com/nb/45937362
定义:(State)
和代理模式类似,但是状态模式可以根据状态的变化动态的选择具体的实现类,以达到调用相同方法实现不同动作的目的。
理解:
它与代理模式的区别是一个状态类的代理可以代理多个具体实现类,具体要代理哪个要根据需要来确定。
方法:
在代理模式的代理类中设置一个set方法,动态设置具体实现类的引用,关于代理模式请看:https://www.jianshu.com/p/b9393b0fa411
适用场合:
一个对象的行为取决于它的状态,并且可以在运行时刻根据状态改变其行为,行为就是具体调用的是哪个类中的哪个方法。此时可以切换具体的实现对象来切换其行为。
一个操作中含有庞大的多分支条件语句,且这些分支依赖于该对象的状态,此时可以根据状态将每一个分支的处理程序放入一个独立的具体实现类中。
结构和代码说明:

网友评论