設計模式原則—合成/彙總複用原則(四)

來源:互聯網
上載者:User

  閱讀目錄

  一:合成/彙總複用原則

  二:什麼是合成?

  三:什麼是彙總?

  四:為什麼盡量不要使用類繼承而使用合成/彙總?

  五:合成/彙總複用原則結構圖

  一:合成/彙總複用原則

  盡量使用合成/彙總,盡量不要使用類繼承

  二:什麼是合成?

  . 合成表示一種強的擁有關係,體現了嚴格的部分和整體的關係,部分和整體的生命週期一樣,打個比方:人有兩個胳膊,胳膊和人就是部分和整體的關係,人去世了,那麼胳膊也就沒用了,也就是說胳膊和人的生命週期是相同的

  . 合成關係用實心的菱形+實線來表示

  三:什麼是彙總?

  . 彙總表示一種弱的擁有關係,體現的是A對象可以包含B對象,但是B對象並不是A對象的一部分,打個比方:人是群居動物,所以每個人屬於一個人群,一個人群可以有多個人,所以人群和人是彙總的關係

  . 彙總關係用空心的菱形+實線來表示

  四:為什麼盡量不要使用類繼承而使用合成/彙總?

  . 對象的繼承關係在編譯時間就定義好了,所以無法在運行時改變從父類繼承的子類的實現

  . 子類的實現和它的父類有非常緊密的依賴關係,以至於父類實現中的任何變化必然會導致子類發生變化

  . 當你複用子類的時候,如果繼承下來的實現不適合解決新的問題,則父類必須重寫或者被其它更適合的類所替換

  這種依賴關係限制了靈活性,並最終限制了複用性

  五:合成/彙總複用原則結構圖

  1和2以及n,被稱為基數,表示這一端的類可以有幾個執行個體,很顯然,一個人有兩個胳膊,如果一個類可能有無數個執行個體,則用n表示,一人群可能有無數個人

  

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.