自考感悟,话谈备忘录模式
生活随笔
收集整理的這篇文章主要介紹了
自考感悟,话谈备忘录模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
引言:
? ? 2014年4月20號上午11:30,正式結束了自己的自學考試!考完之后瞬間感覺放松了開來!全身無力則是自己20號下午的唯一感受。放松了半天,今天回歸正軌!又回到了和生活息息相關的設計模式上來!今天就用備忘錄模式來記錄一下自己這次的自考感受吧!
? ? 考試有喜有憂,對于數據庫來講,因為考試了一遍,這次又一次回到考場上,產生出了不一樣的快感吧!最起碼態度有了轉變,解題方式上也有了提高;昨天上午考的管理經濟學也許是自己這次感覺最順利的一科!也許是有計算題的原因吧!相比之下,信息資源管理就顯得令自己充滿了無奈!
? ? 在考場上,也許每一個人都會遇到這種問題,這個問題當初自己看的非常認真,但是當考場上真的出現了自己所謂的重點的時候,又會不自覺的責備一下自己,為何當初自己不再認真點呢?這樣自己就能夠拿滿分了!今天就用備忘錄模式來幫助一下自己,記錄一下自己的以前的記憶吧!即所謂的“懊悔藥機制”
備忘錄模式:
結構圖:
Originator:負責創建一個Memento,用以記錄當前時刻它的內部狀態,并可使用備忘錄回復內部狀態。 Memento:負責存儲Originator對象的內部狀態,并可防止Originator以外的其它對象訪問Memento。 Caretaker:負責保存好Memento,不能對備忘錄的內容進行操作或檢查。
介紹:
備忘錄模式,又叫快照模式(Snapshot Pattern)或Token模式,是行為模式的一種。長處:
1)給用戶提供了一種能夠恢復狀態的機制。能夠是用戶能夠比較方便地回到某個歷史的狀態。 2)實現了信息的封裝。使得用戶不須要關心狀態的保存細節。缺點:
消耗資源。假設類的成員變量過多,勢必會占用比較大的資源,并且每一次保存都會消耗一定的內存。使用場景:
? ? Memento模式比較適用于功能比較復雜的,但須要維護或記錄屬性歷史的類,或者須要保存的屬性僅僅是眾多屬性中的一小部分時,Originator能夠依據保存的Memento信息還原到前一狀態。 總結點: ? ? 1)須要保存一個對象在某一個時刻的狀態或部分狀態;2)假設用一個接口來讓其他對象得到這些狀態,將會暴漏對象的實現,通過負責人能夠間接訪問其內部狀態。自考記憶舉例:
備注:
? ? ? ?考試的時候自己每次遇到一個題目,總會從大腦中搜索相關的知識,一下的過程則是簡單的描寫敘述了一下知識存儲于大腦以及從大腦搜索的過程!
client主要代碼:
static void Main(string[] args){Memory memory = new Memory();memory.Economics = "這個知識點屬于管理經濟學的內容模塊";memory.ShowEconomicsName();Brain B = new Brain();B.Memento = memory.Savekind(); //記憶存儲memory.Economics = "這個知識點已經歸納到大腦中內容模塊";memory.ShowEconomicsName();//從大腦中查找memory.Seek(B.Memento);memory.ShowEconomicsName();}Originator類:
class Memory{private string economics;public string Economics{get { return economics; }set { economics= value; }}//經濟學管理存儲public MemoryMemento Savekind(){Console.WriteLine("內容模塊已在大腦中存儲");return (new MemoryMemento(economics));}//查找public void Seek(MemoryMemento MM){economics = MM.Economics;Console.WriteLine("已從大腦中搜索到經濟管理學內容模塊");}public void ShowEconomicsName(){Console.WriteLine(economics);}Memento類:
class MemoryMemento{private string economics;public MemoryMemento (string economics) //在記憶時對內容要總結{this.economics = economics;}public string Economics{get { return economics; }}}Caretaker類:
class Brain{private MemoryMemento memento;public MemoryMemento Memento{get { return memento; }set { memento = value; }}}最后執行結果:
? ? 第二次自考就這樣結束了!當中經歷了非常好的GTD,同一時候也由于上次不理想的原因小小煩躁了一段時間,可是最后想想備忘錄這個大功能,相信在GTD的非常好輔助下,自己也全然能夠做到!為自己的第三次自考加油!
?
轉載于:https://www.cnblogs.com/mengfanrong/p/3745174.html
總結
以上是生活随笔為你收集整理的自考感悟,话谈备忘录模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用C语言实现俄罗斯方块游戏
- 下一篇: 虚拟服务器问题,虚拟主机常见的五大问题