驚悚!異能者為了美女居然..... 備忘錄模式(Memento): 在不破壞封閉的前提下, 捕獲一個對象的內部狀態, 併在該對象之外保存這個狀態. 這樣以後就可將該對象恢復到原先保存的狀態. 備忘者模式優點: 發起人備份狀態不需要自己管理, 可以備份到外部, 這樣可以很好的保持封裝的邊界, 這樣做的 ...
備忘錄模式(Memento): 在不破壞封閉的前提下, 捕獲一個對象的內部狀態, 併在該對象之外保存這個狀態. 這樣以後就可將該對象恢復到原先保存的狀態.
備忘者模式優點:
- 發起人備份狀態不需要自己管理, 可以備份到外部, 這樣可以很好的保持封裝的邊界, 這樣做的意義在於可以給外部提供一個簡單的操作該對象內部狀態的介面. 保持封裝的邊界這應該算是最重要的優點了
- 發起人狀態的備份與恢復, 發起人自身不需要管理與操作, 而是由客戶端自學按需處理
- 發起人的狀態出現問題可以很輕鬆的恢復
缺點:
- 如果全部備份發起人的狀態, 或者其中有占有記憶體較大的屬性(比如一個長的數組), 則會讓備忘錄模式的使用代價昂貴
- 由於備份的信息是由發起人自己提供的, 所以管理者無法預知備份的信息的大小, 所有可能會有一個操作很消耗資源
- 當發起人的狀態改變的時候, 有可能這個狀態無效. 如果狀態改變的成功率不高的話, 可以採取假如的協議模式, 但是一旦成功率高, 這麼做會增加系統的複雜度, 但是這是小事情
- 最大的缺點就是: 備份的可能所占的資源比較龐大