mirror of
https://github.com/crazybber/go-pattern-examples.git
synced 2024-11-21 19:36:03 +03:00
update readme
This commit is contained in:
parent
218e77d7f2
commit
b66b9c80e4
@ -31,7 +31,6 @@
|
||||
+ [x] [解释器模式(Interpreter)](./behavior/08_interpreter)
|
||||
+ [x] [职责链模式(Chain of Responsibility)](./behavior/06_chain_of_responsibility)
|
||||
|
||||
|
||||
## 创建型模式 Creation Patterns
|
||||
|
||||
+ [x] [New模式(New)](./creation/01_new)
|
||||
@ -43,7 +42,6 @@
|
||||
+ [x] [抽象工厂模式(Abstract Factory)](./creation/08_abstract_factory)
|
||||
+ [x] [原型模式(Prototype)](./creation/07_prototype)
|
||||
|
||||
|
||||
## 结构型模式 Structure Patterns
|
||||
|
||||
+ [x] [外观模式(Facade)](./structure/01_facade)
|
||||
@ -54,7 +52,7 @@
|
||||
+ [x] [装饰器模式(Decorator)](./structure/06_decorator)
|
||||
+ [x] [代理模式(Proxy)](./structure/07_proxy)
|
||||
|
||||
## 更多 Go More
|
||||
## 更多模式 Go More Patterns
|
||||
|
||||
+ [x] [发布订阅模式(Pub-Sub)](./gomore/01_messages)
|
||||
+ [x] [时差模式(Time Profile)](./gomore/02_profiles)
|
||||
@ -69,7 +67,6 @@
|
||||
+ [ ] [WIP][屏障模式(N-Barrier)](./gomore/11_n_barrier)
|
||||
+ [ ] [WIP][有限并行模式(Bounded Parallelism)](./gomore/12_bounded_parallelism)
|
||||
|
||||
|
||||
## 参考资料(Design patters Articles)
|
||||
|
||||
| Patterns | Design Patterns | Status |
|
||||
|
@ -8,9 +8,8 @@
|
||||
|
||||
现实生活中涉及备份和快照的例子就太多了,日常的打游戏存档,下次玩的时候,读取存档,读取进度,也是这个模式。
|
||||
|
||||
|
||||
该模式中有三个关键角色:
|
||||
|
||||
1. 发起人角色 Originator: 负责记录当前的内部状态,提供当前状态数据,并负责恢复备忘录数据。
|
||||
2. 备忘录角色 Memento : 负责存放发起人对象某个时刻的内部状态,这就是要保存的数据结构类型。
|
||||
3. 管理者角色 Caretaker: 负责保存备忘录对象。
|
||||
- 1. 发起人角色 Originator: 负责记录当前的内部状态,提供当前状态数据,并负责恢复备忘录数据。
|
||||
- 2. 备忘录角色 Memento : 负责存放发起人对象某个时刻的内部状态,这就是要保存的数据结构类型。
|
||||
- 3. 管理者角色 Caretaker: 负责保存备忘录对象。
|
||||
|
@ -1,11 +1,13 @@
|
||||
# 状态模式
|
||||
|
||||
状态模式的目的就是设计一个状态机,用状态的改变/流转驱动行为变化,前提是需要知道所有的状态,否则,该模式有益于根据已知状态扩展行为。
|
||||
状态模式的目的就是设计一个状态机,用状态的改变/流转驱动行为变化,同时将状态的实现放在外部,以方便扩展状态。
|
||||
|
||||
|
||||
我们打游戏,游戏角色的拟人状态有:走,跑,原地不动,休息
|
||||
日常生活的很多情况都在跟状态打交道,比如闹装有,振铃,非振铃状态,商业有营业和关门状态,饭有生,熟,半生不熟三种状态,机器人,游戏角色的拟人状态有:走,跑,跳,充电(休息)等状态。
|
||||
|
||||
状态模式的关键角色:
|
||||
Context: 拥有多种状态的上下文对象(struct), 持有状态属性State
|
||||
State: 封装特定状态行为的interface
|
||||
ConcreteState: 具体的状态,继承接口State,不同的状态执行Context的不同行为
|
||||
|
||||
+ Context: 拥有多种状态的上下文对象(struct), 持有状态属性State
|
||||
+ State: 封装特定状态行为的interface
|
||||
+ ImplementedState: 具体的状态,继承接口State,不同的状态执行Context的不同行为。
|
||||
|
||||
状态模式常常需要耦合有状态的对象本身的引用,或者相关接口,以获取对象的完整的状态。
|
||||
|
Loading…
Reference in New Issue
Block a user