小菜學設計模式——設計模式總結之結構型

一、設計模式總結

    設計模式總共23個,可是經常使用的不到10個,下面就把這23個設計模式進行整理歸類,具體以下:設計模式

    1)建立型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。spa

    2)結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。設計

    3)行爲型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代器模式、職責鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式代理



二、結構型設計模式

    1)適配器模式:將一個類的接口轉換成客戶但願的另外一個接口。Adapter模式使得本來因爲接口不兼容而不能一塊兒工做的那些類能夠一塊兒工做。對象

    想使用一個已經存在的類,而它的接口不符合要求,或者但願建立一個能夠複用的類,該類能夠與其餘不相關的類或不可預見的類協同工做。這個時候就可使用是適配器模式,經過適配,則能協同工做。繼承


    2)裝飾模式:動態地給一個對象添加一些額外的職責,就增長功能來講,裝飾模式比生成子類更爲靈活。接口

    面對變化以生成子類的方法去應對,必然致使子類暴增。若是這些子類只是爲某個對象增長一些職責,此時經過裝飾模式能夠更加靈活、以動態、透明的方式給單個對象添加職責,並在不須要時撤銷相應的職責。內存


    3)代理模式:爲其餘對象提供一種代理以控制對這個對象的訪問。資源

    代理與外觀的主要區別在於,代理對象表明一個單一對象而外觀對象表明一個子系統,代理的客戶對象沒法直接訪問目標對象,由代理提供單獨的目標對象的訪問控制,而外觀的客戶對象能夠直接訪問子系統中的各個對象,但一般由外觀對象提供對子系統個元件功能的簡化的共同層次的調用接口。代理是一種原來對象的表明,其餘須要與這個對對象打交道的操做都是這個表明交涉。而適配器則不須要虛構出一個表明,只須要爲應付特定的使用目的,將原來的類進行一些組合。原型


    4)外觀模式:爲子系統中的一組接口提供一個一致的界面,外觀模式定義了一個高層接口,這個接口使得這一子系統更加容易實現。

    若是兩個類沒必要彼此直接通訊,那麼就不要讓這兩個類發生直接的交互做用。應該讓一個軟件中的子系統通訊和相互依賴達到最小,而具體辦法就是引入一個外觀對象,它爲子系統間提供一個單一而簡單的屏障。實際上你會發現外觀模式和適配器的模式很像,可是適配器模式彷佛更加細粒度,而外觀這是對於一個子系統進行兼容性適配。


    5)橋接模式:將抽象部分與它的實現部分離,使他們能夠獨立地變化。

    繼承是一個好東西,但每每過分使用,繼承會致使類的結構過於複雜,關係太多,難以維護,而更糟糕的擴展性很是差。而仔細研究若是發現繼承體系中,有兩個甚至更多方向的變化,那麼就解耦這些不一樣方向的變化,經過對象組合的方式,把兩個角色之間的繼承關係改成組合的關係,從而使得這二者能夠應對各自獨立的變化,因此,橋接模式就是找出變化而且封裝之。


    6)組合模式:將對象組合成樹形結構以表示「部分-總體」的層次結構。組合模式使得用戶對單個對象和組合對象的使用具備一致性。

    客戶能夠一致地使用組合組合結構和單個對象。任何用到基本對象的地方均可以使用組合對象。


    7)享元模式:運用共享技術有效地支持大量細粒度的對象。

    對象使得內存佔用過多,並且若是都是大量重複的的對象,那就是資源的極大浪費。

相關文章
相關標籤/搜索