国产探花免费观看_亚洲丰满少妇自慰呻吟_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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沐川县| 富川| 北票市| 比如县| 平顶山市| 上饶市| 宁安市| 钟山县| 甘孜| 长丰县| 独山县| 七台河市| 铅山县| 南涧| 湖南省| 德江县| 香格里拉县| 贵定县| 屏东县| 沈阳市| 卢龙县| 通河县| 沧州市| 东乌| 望奎县| 广元市| 博白县| 百色市| 防城港市| 彩票| 凤阳县| 桃江县| 海门市| 漳平市| 阳谷县| 哈尔滨市| 河池市| 永宁县| 府谷县| 五大连池市| 澄城县|