行为型之六-备忘录模式
2017-10-09 本文已影响11人
iOS_肖晨
Memento(备忘录模式)
在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。
比如iOS对对象的归档解档。
VC.m
HCDGameRoll *roll = [[HCDGameRoll alloc]init];
[roll getState];
//把roll对象的内部状态保存到state对象中
HCDGameState *state = [roll saveState];
//manager管理state对象
HCDStateManager *manager = [[HCDStateManager alloc]initWithGameState:state];
//改变roll的内部状态
[roll fightBoss];
[roll getState];
//恢复对象的内部状态
[roll rebackState:manager.gameState];
[roll getState];
设计图
![](https://img.haomeiwen.com/i3779225/6f179a71c4ce35c0.png)