设计模式开发中的备忘录模式在iOS应用开发中的运用实例

2020-01-14 22:33:38王旭
易采站长站为您分析设计模式开发中的备忘录模式在iOS应用开发中的实例,代码为传统的Objective-C,需要的朋友可以参考下  

何为备忘录模式?

    在响应某些事件时,应用程序需要保存自身的状态,比如当用户保存文档或程序退出时。例如,游戏退出之前,可能需要保存当前会话的状态,如游戏等级、敌人数量、可用武器的种类等。游戏再次打开时,玩家可以从离开的地方接着玩。很多时候,保存程序的状态真的不需要什么特别巧妙的方法。任何简单有效的方法都可以,但是同时,保存信息应该只对原始程序有意义。原始程序应该是能够解码它所保存文档中的信息的唯一实体。这就是备忘录模式应用于游戏、文字处理等程序的软件设计中的方式,这些程序需要保存当前上下文的复杂状态的快照并在以后恢复。

    备忘录模式:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先的保存状态。

何时使用备忘录模式?

    当同时满足以下两个条件时,应当考虑使用这一模式:

    @:需要保存一个对象(或某部分)在某一个时刻的状态,这样以后就可以恢复到先前的状态。

    @:用于获取状态的接口会暴漏实现的细节,需要将其隐藏起来。

如何使用备忘录模式:
在ViewController.m中增加下面的方法:

复制代码
- (void)saveCurrentState
 
{
 
    // When the user leaves the app and then comes back again, he wants it to be in the exact same state
 
    // he left it. In order to do this we need to save the currently displayed album.
 
    // Since it's only one piece of information we can use NSUserDefaults.
 
    [[NSUserDefaultsstandardUserDefaults] setInteger:currentAlbumIndex forKey:@"currentAlbumIndex"];
 
}
 
- (void)loadPreviousState
 
{
 
    currentAlbumIndex = [[NSUserDefaultsstandardUserDefaults] integerForKey:@"currentAlbumIndex"];
 
    [self showDataForAlbumAtIndex:currentAlbumIndex];
 
}
saveCurrentState 保存当前的专辑索引到NSUserDefaults,NSUserDefaults是IOS提供的保存应用设置信息和数据的地方。