在機房收費系統中,有一個修改基本資料的窗體:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TPR50dFRVTqh2RiZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39jNwQTMzQDMxIDMxgDM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
因為在文本框中修改資料之後,隻要不點選修改按鈕,就不會更新到資料庫中,是以,個人版中這裡的取消按鈕是從資料庫讀取原始資料,再重新加載到窗體上來。這次合作的時候,加入了備忘錄模式重新處理這個取消按鈕。
基本思路是這樣的:
1,将要儲存的BaseData(基本資料類的實體名)作為成員變量放到備忘錄類裡面,并在備忘錄類初始化的時候傳入要儲存的基本資料。
2,定義發起者用來建立和回恢複備忘錄的資料,如果點選了取消後,就用這個類來恢複資料備忘錄中資料并傳回
3,利用管理者來管理産生的備忘錄
類圖如下:
![]()
取消基本資料的修改——備忘錄模式的應用模式應用背景如何加入模式 使用備忘錄模式的好處: 對備忘錄模式的缺陷考慮
1,将基本資料的存取細節封裝起來,儲存在BaseDataMemento中,實作了基本資料的儲存和恢複相分離;
2,避免了頻繁通路資料庫讀取基本資料
因為備忘錄模式是将要儲存對象封裝到一個備忘錄對象中,是以當如果要儲存的資料非常大的時候,這時候存入記憶體中,消耗的資源肯定比頻繁連接配接資料庫讀取資料所要消耗的資源多,權衡兩種實作“取消”的方法,這時候我們在使用這個模式的時候就要考慮下了。