我與C 設計模式(十六) memento模式

2021-06-26 03:27:06 字數 1300 閱讀 6155

這個模式通常被翻譯為備忘錄模式,我並不是很欣賞這個翻譯,不夠淺顯易懂啊~不用直譯的話,叫備胎模式。

memento模式的邏輯很簡單,或者說我沒理解透,就是建乙個類能夠存貯state,以便在你需要的時候取出,當然事先有個備份,從**上看,這個類是個隱藏類,只有通過originator才能使用。邏輯上沒什麼可以多說的,見圖和**吧。 圖:

輸出:

$ ./main.exe

originator:new...

originator:old...

我與C 設計模式(十三) 策略模式

strategy模式的起因跟template模式是一樣的,只不過,它是在template模式上進行了一層改進。我們知道template模式是充分利用了多型的特點,用繼承的方式實現了依賴倒轉,然而正是繼承的強制性約束關係給它帶來了不足之處。即,abstract class的子類中各種原語方法primi...

設計模式(C 實現)(十六) 策略模式

乙個問題,有三種解決方法,每種解決方法,適用於不同的場景,靈活設計切換每種解決方法來解決該問題,並可新增解決方法。要能靈活的切換解決問題的方法,且能夠靈活新增方法。strategy.h 在該檔案中,實現了策略的基類,及三個策略的子類 pragma once include 策略基類 class is...

我與C 設計模式(九) 享元模式

享元模式,flyweight,在物件導向設計中,建立物件是極為正常的事情了,然而,當我們到處建立物件還是在建立同一種型別的物件或者同一種抽象型別的物件時,顯得好低效,浪費記憶體。比如,當一篇文章,每個字元都是乙個物件,字母a肯定出現了很多遍,如果每次都要建立乙個物件,工作量就很大了,試想,如果我們共...