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