91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Python中使用備忘錄模式

發布時間:2021-04-02 16:29:46 來源:億速云 閱讀:222 作者:Leah 欄目:開發技術

如何在Python中使用備忘錄模式?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

備忘錄模式(Memento Pattern):不破壞封裝性的前提下捕獲一個對象的內部狀態,并在該對象之外保存這個狀態,這樣已經后就可將該對象恢復到原先保存的狀態

下面是一個備忘錄模式的demo:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = 'Andy'
"""
大話設計模式
設計模式——備忘錄模式
備忘錄模式(Memento Pattern):不破壞封裝性的前提下捕獲一個對象的內部狀態,并在該對象之外保存這個狀態,這樣已經后就可將該對象恢復到原先保存的狀態
"""
# 發起人類
class Originator(object):
  def __init__(self, state):
    self.state = state
  def create_memento(self):
    return Memento(self.state)
  def set_memento(self, memento):
    self.state = memento.state
  def show(self):
    print "當前狀態 ", self.state
# 備忘錄類
class Memento(object):
  def __init__(self, state):
    self.state = state
# 管理者類
class Caretaker(object):
  def __init__(self,memento):
    self.memento = memento
if __name__ == "__main__":
  # 初始狀態
  originator = Originator(state='On')
  originator.show()
  # 備忘錄
  caretaker = Caretaker(originator.create_memento())
  # 修改狀態
  originator.state = 'Off'
  originator.show()
  # 復原狀態
  originator.set_memento(caretaker.memento)
  originator.show()

運行結果:

當前狀態  On
當前狀態  Off
當前狀態  On

上面的類的設計如下圖:

如何在Python中使用備忘錄模式

Originator(發起人):負責創建一個備忘錄Memento,用以記錄當前時刻它的內部狀態,并可使用備忘錄恢復內部狀態,Originator可根據需要決定Memento存儲Originator的那些內部狀態

Memento(備忘錄):負責存儲Originator對象的內部狀態,并可防止Originator以外的其他對象訪問備忘錄Memento

Caretaker(管理者):負責保存好備忘錄Memento,不能對備忘錄的內容進行操作或檢查

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

仙居县| 吉木萨尔县| 宜宾县| 荔波县| 乌海市| 宣恩县| 札达县| 江油市| 台江县| 弥渡县| 和平县| 桓仁| 卫辉市| 潞西市| 金乡县| 清镇市| 唐山市| 房山区| 青州市| 崇信县| 基隆市| 光山县| 大厂| 黔西| 晋江市| 祁门县| 河西区| 朝阳市| 方城县| 日照市| 全州县| 垣曲县| 巴里| 社会| 玛曲县| 岗巴县| 上高县| 赞皇县| 冕宁县| 收藏| 恩施市|