update readme

This commit is contained in:
Edward 2020-05-06 16:50:57 +08:00
parent 218e77d7f2
commit b66b9c80e4
3 changed files with 12 additions and 14 deletions

View File

@ -31,7 +31,6 @@
+ [x] [解释器模式(Interpreter)](./behavior/08_interpreter) + [x] [解释器模式(Interpreter)](./behavior/08_interpreter)
+ [x] [职责链模式(Chain of Responsibility)](./behavior/06_chain_of_responsibility) + [x] [职责链模式(Chain of Responsibility)](./behavior/06_chain_of_responsibility)
## 创建型模式 Creation Patterns ## 创建型模式 Creation Patterns
+ [x] [New模式(New)](./creation/01_new) + [x] [New模式(New)](./creation/01_new)
@ -43,7 +42,6 @@
+ [x] [抽象工厂模式(Abstract Factory)](./creation/08_abstract_factory) + [x] [抽象工厂模式(Abstract Factory)](./creation/08_abstract_factory)
+ [x] [原型模式(Prototype)](./creation/07_prototype) + [x] [原型模式(Prototype)](./creation/07_prototype)
## 结构型模式 Structure Patterns ## 结构型模式 Structure Patterns
+ [x] [外观模式(Facade)](./structure/01_facade) + [x] [外观模式(Facade)](./structure/01_facade)
@ -54,7 +52,7 @@
+ [x] [装饰器模式(Decorator)](./structure/06_decorator) + [x] [装饰器模式(Decorator)](./structure/06_decorator)
+ [x] [代理模式(Proxy)](./structure/07_proxy) + [x] [代理模式(Proxy)](./structure/07_proxy)
## 更多 Go More ## 更多模式 Go More Patterns
+ [x] [发布订阅模式(Pub-Sub)](./gomore/01_messages) + [x] [发布订阅模式(Pub-Sub)](./gomore/01_messages)
+ [x] [时差模式(Time Profile)](./gomore/02_profiles) + [x] [时差模式(Time Profile)](./gomore/02_profiles)
@ -69,7 +67,6 @@
+ [ ] [WIP][屏障模式(N-Barrier)](./gomore/11_n_barrier) + [ ] [WIP][屏障模式(N-Barrier)](./gomore/11_n_barrier)
+ [ ] [WIP][有限并行模式(Bounded Parallelism)](./gomore/12_bounded_parallelism) + [ ] [WIP][有限并行模式(Bounded Parallelism)](./gomore/12_bounded_parallelism)
## 参考资料(Design patters Articles) ## 参考资料(Design patters Articles)
| Patterns | Design Patterns | Status | | Patterns | Design Patterns | Status |

View File

@ -8,9 +8,8 @@
现实生活中涉及备份和快照的例子就太多了,日常的打游戏存档,下次玩的时候,读取存档,读取进度,也是这个模式。 现实生活中涉及备份和快照的例子就太多了,日常的打游戏存档,下次玩的时候,读取存档,读取进度,也是这个模式。
该模式中有三个关键角色: 该模式中有三个关键角色:
1. 发起人角色 Originator 负责记录当前的内部状态,提供当前状态数据,并负责恢复备忘录数据。 - 1. 发起人角色 Originator 负责记录当前的内部状态,提供当前状态数据,并负责恢复备忘录数据。
2. 备忘录角色 Memento : 负责存放发起人对象某个时刻的内部状态,这就是要保存的数据结构类型。 - 2. 备忘录角色 Memento : 负责存放发起人对象某个时刻的内部状态,这就是要保存的数据结构类型。
3. 管理者角色 Caretaker: 负责保存备忘录对象。 - 3. 管理者角色 Caretaker: 负责保存备忘录对象。

View File

@ -1,11 +1,13 @@
# 状态模式 # 状态模式
状态模式的目的就是设计一个状态机,用状态的改变/流转驱动行为变化,前提是需要知道所有的状态,否则,该模式有益于根据已知状态扩展行为 状态模式的目的就是设计一个状态机,用状态的改变/流转驱动行为变化,同时将状态的实现放在外部,以方便扩展状态
日常生活的很多情况都在跟状态打交道,比如闹装有,振铃,非振铃状态,商业有营业和关门状态,饭有生,熟,半生不熟三种状态,机器人,游戏角色的拟人状态有:走,跑,跳,充电(休息)等状态。
我们打游戏,游戏角色的拟人状态有:走,跑,原地不动,休息
状态模式的关键角色: 状态模式的关键角色:
Context: 拥有多种状态的上下文对象(struct), 持有状态属性State
State: 封装特定状态行为的interface + Context: 拥有多种状态的上下文对象(struct), 持有状态属性State
ConcreteState: 具体的状态继承接口State不同的状态执行Context的不同行为 + State: 封装特定状态行为的interface
+ ImplementedState: 具体的状态继承接口State不同的状态执行Context的不同行为。
状态模式常常需要耦合有状态的对象本身的引用,或者相关接口,以获取对象的完整的状态。