go-pattern-examples/behavior/10_state/README.md
2020-05-05 22:43:54 +08:00

12 lines
556 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 状态模式
状态模式的目的就是设计一个状态机,用状态的改变/流转驱动行为变化,前提是需要知道所有的状态,否则,该模式有益于根据已知状态扩展行为。
我们打游戏,游戏角色的拟人状态有:走,跑,原地不动,休息
状态模式的关键角色:
Context: 拥有多种状态的上下文对象(struct), 持有状态属性State
State: 封装特定状态行为的interface
ConcreteState: 具体的状态继承接口State不同的状态执行Context的不同行为