設計模式之結構型模式

來源:互聯網
上載者:User

標籤:設計模式   橋接模式   類   對象   

               我們知道,設計模式分別是六個原則和三大模式,分別可以分為建立型模式、結構型模式、行為型模式,其中結構型模式包括:適配器模式、裝飾模式、橋接模式、組合模式、享元模式、代理模式、面板模式。在這裡,我們就說一下結構型模式。

適配器模式(Adapter):

      定義:將一個類的介面轉換成客戶喜歡的另外一個介面,Adapter模式使得原本由於介面不相容而不能一起工作的那些類一起工作。


       圖:


                                                                                                                           

    理解:

         為了更好的提高複用性,但是介面和複用的環境是不一樣的,所以需要加入適配器模式,讓這個介面可以複用。         

橋接模式(Bridge):

     定義:將抽象部分與他的實現部分分離,讓他們都可以獨立的發生變化,實現指的是抽象類別和他的衍生類別用來實現自己的對象。


    圖:

   

   理解:

         上面的這個例子很容易懂,主要是運用合成/複用的原則,優先使用對象的合成和彙總可以更好的保持每一個類被封裝,大大的減少面對新需要而出現大的改動。


組合模式(Composite):

        定義:將對象組合成樹形結構以表示“部分-整體”,得層次關係,組合模式使得使用者對單個對象和組合對象的使用具有一致性。


        圖:

              

  

      理解:

             需求中體現部分和整體的層次關係,當你喜歡使用者可以忽略對象與單個對象的不同,可以統一使用組合結構中所有對象的時候,就可以用組合模式啦,組合模式可以讓使用者一致地使用組合結構和單個對象。


享元模式(Flyweight):

       定義:

             運用共用技術有效支援大量細類度的對象,來提供應用程式的效能,節約系統中重複建立對象執行個體的效能消耗。當我們系統中的某個物件類型的執行個體較多的情況,並且要求這些執行個體進行分類後,發現真正有區別的分類很少的情況。例如我們在使用拼音IME的時候,如果說我們每一字都是new一個對象的執行個體的操作的話,那麼記憶體中的執行個體就太大啦,這個時候我們就可以考慮將這些重複的對象來自建立一次,這時候我們就可以考慮享元模式啦。


        圖:

                       


       理解:

       享元模式可以大量的避免非常相似類的開銷,可以有效減少需要執行個體化的數量。如果能把那些參數移到類執行個體外面,在方法調用時將他們傳遞進來。


面板模式(Facade):

        定義:為子系統中的一組介面提供一個一致的介面,此模式定義了一個高層介面,這個介面使得這一個系統更加容易使用。

        圖:

                  

     理解:

         提供一個簡單的介面,減少他們的依賴。


         總之,我覺得自己對大話模式理解的很淺,很淺。。。。。












      

設計模式之結構型模式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.