状态模式学习和思考

来源:互联网 发布:阿里云域名控制台 编辑:程序博客网 时间:2024/05/21 11:03

状态模式:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。

在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的(stateful)对象,这样的对象状态是从事先定义好的一系列值中取出的。当一个这样的对象与外部事件产生互动时,其内部状态就会改变,从而使得系统的行为也随之发生变化。

2.理解:
比如State是一个抽象类或接口,表示状态,类A有一个State的属性state,还有一个SetSate()的方法,通过此方法可以实现将A中和状态相关的对象全部修改掉。进而对象整体都会有变化。其实是和策略模式很类似,要说区别,可能就是状态模式比策略模式影响的更彻底。
原创粉丝点击