状态模式:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。
在很多情况下,
一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做
状态,这样的对象叫做
有状态的
(
stateful
)
对象,这样的对象状态是从事先定义好的一系列值中取出的。当一个这样的对象与外部事件产生互动时,其内部状态就会改变,从而使得系统的行为也随之发生变化。
2.理解:
比如
State是一个抽象类或接口,表示状态,类A有一个
State的属性state,还有一个SetSate()的方法,通过此方法可以实现将A中和状态相关的对象全部修改掉。进而对象整体都会有变化。其实是和策略模式很类似,要说区别,可能就是状态模式比策略模式影响的更彻底。