Franky's LIFE

          Anything... ...

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            53 隨筆 :: 87 文章 :: 6 評論 :: 0 Trackbacks

          結構型設計模式是從程序的結構上解決模塊之間的耦合問題(好像是句廢話), GoF23 種設計模式中結構型設計模式有 7 種,分別是: Adapter 適配器模式、 Bridge 橋接模式、 Composite 組合模式、 Decorator 裝飾模式、 Facade 外觀模式、 Flyweight 享元模式和 Proxy 代理模式。下面分別總結一下這幾種模式:

          設計模式

          GoF 的描述

          我的理解

          Adapter 適配器模式

          將一個類的接口轉換成客戶希望的另一個接口。 Adapter 模式使得原本由于接口不兼容而不能一起工作的類可以一起工作

          轉換接口,由于應用環境的變化,常常需要將“一些現存的對象”放在新的環境中應用,但是,新環境要求的接口是現存對象所不滿足的,此時我們可以通過添加一層 Adapter 對現有的對象加入一些接口,使其適應新的應用環境。

          Bridge 橋接模式

          將抽象部分與實現部分分離,使他們可以獨立的變化

          分離接口(抽象)與其實現,當某個類型具有兩個或兩個以上的緯度變化(或者說是變化點),通過以繼承接口的方式隔離變化,以減少因變化帶來的代碼的修改量。

          Composite 組合模式

          將對象組合成樹形結構以表示“部分 - 整體”的層次結構。 Composite 模式使得客戶對單個對象和組合對象的使用具有一致性

          解決客戶程序與復雜對象容器的解耦,一類具有“容器特征”的對象——即他們在充當對象的同時,又是其他對象的容器的情況,通過繼承統一的接口,我們可以將容器對象及其子對象看成同一類對象使用,以減少對象使用中的復雜度。

          Decorator 裝飾模式

          動態的給一個對象添加一些額外的職責。就增加功能而言, Decorator 模式比生成子類更為靈活

          在穩定接口的前提下為對象擴展功能,主要是解決用繼承的方式為對象擴展大量功能而造成的子對象數量膨脹的問題

          Facade 外觀模式

          為子系統中的一組接口提供一個一致的界面, Facade 模式定義了一個高層接口,這個接口使得這一子系統更加容易使用

          簡化接口,對于復雜子系統或子對象調用的封裝。從客戶程序角度看,只能看見 Facade 提供的接口。換句話說是對子對象調用的封裝,將客戶程序對子對象的調用與子對象的變化分離。

          Flyweight 享元模式

          運用共享技術有效的支持大量細粒度的對象

          主要是解決由于相同對象數量過大而造成系統內存開銷過大的問題。實際上是相同的對象引用指向同一個對象空間。在使用 Flyweight 模式前要做一個評估,如果使用不當會適得其反

          Proxy 代理模式

          為其他對象提供一種代理以控制這個對象的訪問

          解決直接訪問某些對象是出現的問題,如:訪問遠程的對象

          ???在學習的過程中感覺,從代碼的角度看 Adapter 適配器模式和 Proxy 代理模式有些類似, Adapter 適配器模式是解決現有對象在新的環境中的不足,而 Proxy 代理模式是解決直接訪問對象時出現的問題,這兩種模式從使用角度看都是解決直接訪問對象時出現的問題,只是含義不十分相同。

          posted on 2007-03-19 21:03 Franky 閱讀(191) 評論(0)  編輯  收藏 所屬分類: IT知識
          主站蜘蛛池模板: 英超| 彩票| 揭东县| 东海县| 兴义市| 从化市| 密山市| 东安县| 军事| 平乐县| 彰化县| 普兰店市| 始兴县| 浦北县| 隆昌县| 隆安县| 天等县| 苍梧县| 渑池县| 莱州市| 额济纳旗| 张家川| 来宾市| 安图县| 元江| 招远市| 沙田区| 和田县| 新巴尔虎右旗| 阜平县| 嘉鱼县| 兰西县| 荣成市| 甘肃省| 吉水县| 蓬溪县| 石屏县| 宜君县| 股票| 扎兰屯市| 若尔盖县|