今回はMementoパターンについて書いていきます。
デザインパターンとは
デザインパターンとはソフトウェア開発の設計方法の事です。
『オブジェクト指向における再利用のためのデザインパターン』という本が出典で、全部で23種類のパターンが紹介されています。
Memento パターンとは
Memento パターンはオブジェクトの状態保存に関するパターンです。
現在の状態のインスタンス化・インスタンスを元に状態復元の2つの機能を提供するパターンです。
その機能を活用すれば、状態のロールバック等も使えるようになります。
SwiftでのMemento パターンの実装方法
SwiftでのMemento パターンは下のように記述します。
DataManagerの状態をMementoとして生成する事とMementoを元にDataManagerの値をセットすることができるようにしています。
class DataManager { var value = 0 func createMemento() -> Memento { return Memento(value: value) } func setValueFromMemento(memento: Memento) { value = memento.value } class Memento { var value = 0 init(value: Int) { self.value = value } } } let dataManager = DataManager() dataManager.value = 2 print(dataManager.value) // → 2 let memento = dataManager.createMemento() dataManager.value = 4 print(dataManager.value) // → 4 // mementoを元に4をセットする前の状態にロールバック dataManager.setValueFromMemento(memento) print(dataManager.value) // → 2
- 作者: エリックガンマ,ラルフジョンソン,リチャードヘルム,ジョンブリシディース,Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides,本位田真一,吉田和樹
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 1999/10
- メディア: 単行本
- 購入: 21人 クリック: 711回
- この商品を含むブログ (210件) を見る