go-pattern-examples/behavior/10_state
2020-05-06 11:13:33 +08:00
..
README.md add code content for state pattern 2020-05-05 22:43:54 +08:00
state_clock.go refine Alert example for state pattern 2020-05-06 11:13:33 +08:00
state_test.go refine Alert example for state pattern 2020-05-06 11:13:33 +08:00
state.go add code content for state pattern 2020-05-05 22:43:54 +08:00

状态模式

状态模式的目的就是设计一个状态机,用状态的改变/流转驱动行为变化,前提是需要知道所有的状态,否则,该模式有益于根据已知状态扩展行为。

我们打游戏,游戏角色的拟人状态有:走,跑,原地不动,休息

状态模式的关键角色: Context: 拥有多种状态的上下文对象(struct), 持有状态属性State State: 封装特定状态行为的interface ConcreteState: 具体的状态继承接口State不同的状态执行Context的不同行为