设计模式:备忘录模式??
生活随笔
收集整理的這篇文章主要介紹了
设计模式:备忘录模式??
小編覺得挺不錯的,現(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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【T-SQL】基础——表别名
- 下一篇: WebService客户端添加SOAPH