Facade模式
(Facade模式)門面模式與Proxy模式其實還是有點相似的。也是主要實現一種功能的封裝。Facade模式,主要是將幾個有相關性的功能操作,封裝到一起,由統一的接口提供。
使用時,通過該接口即可完成所有相關的功能。此有個好處,就是提高解耦性與增加高聚性。實現中,查處問題也相對方便。
簡單,代碼不就給了。
常用鏈接留言簿(1)我參與的團隊隨筆分類隨筆檔案文章分類文章檔案轉載的鏈接
搜索最新評論
閱讀排行榜評論排行榜 |
Facade模式 (Facade模式)門面模式與Proxy模式其實還是有點相似的。也是主要實現一種功能的封裝。Facade模式,主要是將幾個有相關性的功能操作,封裝到一起,由統一的接口提供。 Proxy模式 代理模式其,思想倒類似于封裝的概念。主要是將某功能操作通過另一對象,來全權處理。對 下面是參考代碼 class ImplSubject class Proxy int main(int argc, char* argv[])
十:Flyweight模式(即:享元模式) 說的直觀點,Flyweight模式其實就是實現一個對象緩存池。取對象,優先從該池中取出。而它們的區別在于:從前者中取東西時,如果不存在。則可以新產生一個,并返回。 class SubFlyweightObjX : public Flyweight class SubFlyweightObjY : public Flyweight //Flyweight類的結構 private: 九:Decorator模式(即:裝飾模式) (注2)假設有這樣的一個問題存在(其實現實開發中,非常經常遇到):基類BasicClassX有N個的派生類。因為它們沒有功能接口void UnknowFunction(void); class Decorator : BasicClassX 設計模式學習總結之六 八:Composite模式(即:復合模式) 復合模式旨在將遞歸處理,轉化為一種順序處理。明顯地,遞歸處理,相對較耗資源。也相對較為抽象些。而用一個Composite類對象來轉化處理 下面簡要看下該模式的代碼結構: class ClassNode //Composite類 //調用 //個人認為,該模式,很怪啊。。因為通過這樣轉換后,原本的父子關系就被破壞掉了。 設計模式學習總結之五 七:Decorator模式(即:裝飾模式) (注2)假設有這樣的一個問題存在(其實現實開發中,非常經常遇到):基類BasicClassX有N個的派生類。因為它們沒有功能接口void UnknowFunction(void); class Decorator : BasicClassX 設計模式學習總結之四 六:Bridge模式(即:橋接模式) 講之前,先聲明:由于本人電腦不是很好,沒法裝上vc環境運行。因此以下代碼,僅是手工輸入,在環境中未必能編譯通過。 看了這么多次的橋接模式,這次總算明白了。要想理解橋接模式,個人認為,還是有必要同抽象及其實現進行一下比較。 //AbstractClassX的具體實現 ClassXImplX1 //AbstractClassX的具體實現 ClassXImplX2 在實際應用中,我們用的是抽象類。而實際上實例化的,卻是某具體子類。這種實現被我們多數人所使用。而它實際上解決的只是這么一類問題,即:同一行為的不同表現。當 //****************************************************************** //平臺A上的抽象的具體實現(注意:此實現子類,是針對抽象的) //平臺B上的抽象的具體實現(注意:此實現子類,是針對抽象的) //****************************************************************** //具體算法1的具體實現 //具體算法1的具體實現 //****************************************************************** int main(int argc, char* argv[]) //do other something... //在此補充一點:有上面的設計,系統的框架將都無需修改。不論是實現的具體算法改變了,還是 設計模式學習總結之三 五:Prototype模式(即:原型模式) 此模式其實很簡單,主要就是通過“克隆”的技術,來產生出新的對象來。其與抽象工廠模式以及Builder模式的區別是:抽象工廠模式式,主要用來產生多個有相互依賴關系的對象的創建。 前面一至五,可被歸納為:創建型模式 設計模式學習總結之二 三:Singleton模式(單實例模式) 顧名思義,即單例模式。其主要思想就是在項目中,僅創建一個實例對象。該對象的抽象,除了通過指定的獲取實例接口外,再沒其他辦法可以初始化。 參考的Delphi實現: //說明:以上僅是臨時寫的,并未在程序中編譯測試。但思路肯定不會錯。可供參考用。 往往在實際項目的開發過程中會發現,某些模塊的功能過于復雜。此時,我們自然就會想到將其進行進一步的劃分。如:細分成DA,DB,...,DN。然后由該模塊的某個管理角色進行協調運作。 設計模式學習總結之一 設計模式其實只是一種程序設計的思想準則。通過該思想準則來指導我們的程序開發行為,盡量讓開發的程序更加穩健、高效、思路清晰、少bug...... 其實,設計模式在具體項目中的應用開發中。要說要用xxx/xxx模式來搭框架開發等等,這些都是不對的。因為個人認為,設計模式的應用,是隨著項目的 當然想懂得設計模式的東東,確實還是離不開面向對象(的思想)。對oo思想更解的越深刻,學起設計模式的將相對越輕松,也更解的會更深刻些(當然, 一:Factory模式(工廠模式) 所謂的Factory模式,即:它能類似工廠一樣,不斷地產生(即:創建)“產品”出來。但它所創建出來的那些“產品”,一般是抽象類的產品。舉例: 二:AbstractFactory模式(抽象工廠模式) 上面Factory模式,其實針對的是一類類的情況,即:處理的上上面的AbstractBasicClass這一類類的情況。而實際項目中,卻往往需要處理N種的這樣抽象類、 小結:Factory與AbstractFactory的設計,最終的目的都只是為了使用系統抽象類的維護更加簡單些。 |