mirror of
https://github.com/crazybber/go-pattern-examples.git
synced 2024-11-22 20:06:02 +03:00
12 lines
556 B
Markdown
12 lines
556 B
Markdown
# 状态模式
|
||
|
||
状态模式的目的就是设计一个状态机,用状态的改变/流转驱动行为变化,前提是需要知道所有的状态,否则,该模式有益于根据已知状态扩展行为。
|
||
|
||
|
||
我们打游戏,游戏角色的拟人状态有:走,跑,原地不动,休息
|
||
|
||
状态模式的关键角色:
|
||
Context: 拥有多种状态的上下文对象(struct), 持有状态属性State
|
||
State: 封装特定状态行为的interface
|
||
ConcreteState: 具体的状态,继承接口State,不同的状态执行Context的不同行为
|