日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

设计模式:备忘录模式??

發(fā)布時間:2023/11/27 生活经验 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式:备忘录模式?? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

定? 義:在不破壞封裝性的前提下,捕獲一個對象的內(nèi)部狀態(tài),并在該對象之外保存這個狀態(tài)。

?????? ??? 這樣以后就可以將該對象恢復到原先保存的狀態(tài)。

結(jié)構(gòu)圖:

Originator(發(fā)起人):負責創(chuàng)建一個備忘錄(Memento),用以記錄當前時刻它的內(nèi)部狀態(tài),并可以使用備忘錄恢復內(nèi)部狀態(tài)。

Memnto(備忘錄):負責存儲Originator對象的內(nèi)部狀態(tài),并可防止Originator以外的對象訪問備忘錄Memento。

Caretaker(管理者):負責保存?zhèn)渫?#xff08;Memento),不能對備忘錄的內(nèi)容進行操作或檢查。

class Originator{public string State { get; set; }public Memento CreateMemento(){return new Memento(this.State);}public void SetMemento(Memento m){this.State = m.State;}public void Show(){Console.WriteLine("State:" + this.State);}}class Memento{private string state;public Memento(string state){this.state = state;}public string State{get { return state; }}}class CareToker{public Memento memento { get; set; }}
View Code

客戶端調(diào)用:

            Originator originator = new Originator();originator.State = "ON";originator.Show();CareToker careToker = new CareToker();//創(chuàng)建備忘錄保存內(nèi)部狀態(tài)careToker.memento = originator.CreateMemento(); originator.State = "OFF";originator.Show();//使用備忘錄恢復內(nèi)部狀態(tài)
            originator.SetMemento(careToker.memento);originator.Show();   
View Code

結(jié)果:

轉(zhuǎn)載于:https://www.cnblogs.com/qianxingdewoniu/p/3566703.html

總結(jié)

以上是生活随笔為你收集整理的设计模式:备忘录模式??的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。