国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python設計模式之備忘錄模式原理與用法詳解

2020-02-16 00:41:12
字體:
來源:轉載
供稿:網友

本文實例講述了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 = mementoif __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

上面的類的設計如下圖:

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

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

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

更多關于Python相關內容可查看本站專題:《Python數據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》

希望本文所述對大家Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 涿鹿县| 梅河口市| 眉山市| 昌黎县| 景洪市| 望江县| 申扎县| 陆河县| 沁阳市| 炉霍县| 千阳县| 阳江市| 汕尾市| 沁源县| 赣州市| 敖汉旗| 太仓市| 浙江省| 邛崃市| 上林县| 临朐县| 磴口县| 侯马市| 绥德县| 漾濞| 耿马| 汶上县| 天镇县| 临湘市| 易门县| 梁山县| 金塔县| 平顶山市| 桃江县| 金寨县| 安乡县| 江华| 手游| 昔阳县| 河北省| 青河县|