C#簡單備忘錄模式(附帶源碼下載)

來源:互聯網
上載者:User

定義(源於GoF《設計模式》):在不破壞封閉的前提下,捕獲一個對象的內部狀態,並在該對象之外儲存這個狀態。這樣以後就可將該對象恢複到原先儲存的狀態。

備忘錄模式的優點和缺點

 

  一、備忘錄模式的優點

 

  1、有時一些發起人對象的內部資訊必須儲存在發起人對象以外的地方,但是必須要由發起人對象自己讀取,這時,

 

  使用備忘錄模式可以把複雜的發起人內部資訊對其他的對象屏蔽起來,從而可以恰當地保持封裝的邊界。

 

  2、本模式簡化了發起人類。發起人不再需要管理和儲存其內部狀態的一個個版本,用戶端可以自行管理他們所需

 

  要的這些狀態的版本。

 

  3、當發起人角色的狀態改變的時候,有可能這個狀態無效,這時候就可以使用暫時儲存起來的備忘錄將狀態複原。

 

  二、備忘錄模式的缺點:

 

  1、如果發起人角色的狀態需要完整地儲存到備忘錄對象中,那麼在資源消耗上面備忘錄對象會很昂貴。

 

  2、當負責人角色將一個備忘錄 儲存起來的時候,負責人可能並不知道這個狀態會佔用多大的儲存空間,從而無法提醒使用者一個操作是否很昂貴。

 

  3、當發起人角色的狀態改變的時候,有可能這個協議無效。如果狀態改變的成功率不高的話,不如採取“假如”協議模式。

  以備忘錄為例,當我添加了一個備忘人時候,現在我又修改了備忘人的名字,想回到以前備忘的資料,則可利用備忘錄進行恢複到以前的狀態。
      這隻是一個很簡單額測試例,希望通過這些能夠更加透徹的瞭解備忘錄模式!

表單圖:

這裡不貼上代碼了,自己下載附件!
:http://files.cnblogs.com/xiaowei0705/MementoPattern.rar

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.