面向對象設計原則之合成復用原則 合成復用原則又稱為組合/聚合復用原則(Composition/Aggregate Reuse Principle, CARP),其定義如下: 合成復用原則 ...
我們以汽車分類管理程序為例來介紹合成復用原則的應用。 分析:汽車按 動力源 划分可分為汽油汽車 電動汽車等 按 顏色 划分可分為白色汽車 黑色汽車和紅色汽車等。如果同時考慮這兩種分類,其組合就很多。如圖所示是用繼淨:關系實現的汽車分類的類圖。 從圖中可以看出用繼承關系實現會產生很多子類,而且增加新的 動力源 或者增加新的 顏色 都要修改源代碼,這違背了開閉原則,顯然不可取。但如果改用組合關系實現 ...
2020-03-26 20:28 0 685 推薦指數:
面向對象設計原則之合成復用原則 合成復用原則又稱為組合/聚合復用原則(Composition/Aggregate Reuse Principle, CARP),其定義如下: 合成復用原則 ...
閱讀目錄 一:合成/聚合復用原則 二:什么是合成? 三:什么是聚合? 四:為什么盡量不要使用類繼承而使用合成/聚合? 五:合成/聚合復用原則結構圖 一:合成/聚合復用原則 盡量使用合成/聚合,盡量不要使用類繼承 二:什么是合成? . 合成 ...
一、概念 合成/聚合復用原則是在一個新的對象里面使用一些已有的對象,使之成為新對象的一部分;新的對象通過向這些對象的委派達到復用已有功能的目的。 概括:要盡量使用合成/聚合,盡量不要使用繼承。 二、依賴和關聯 依賴是類與類之間的連接,表示一個類依賴於另外一個類的定義。依賴關系僅僅描述 ...
聚合(Aggregation)表示一種弱的‘擁有’關系,體現的是A對象可以包含B對象但B對象不是A對象的一部分。 合成(Composition)則是一種強的'擁有'關系,體現了嚴格的部分和整體關系,部分和整體的生命周期一樣。 優先使用對象的合成/聚合將有助於你保持每個 ...
一、里氏替換原則 如果說實現開閉原則的關鍵步驟就是抽象化,那么基類(父類)和子類的繼承關系就是抽象化的具體實現,所以里氏替換原則就是對實現抽象化的具體步驟的規范。即:子類可以擴展基類(父類)的功能,但不能改變父類原有的功能。 定義:一個軟件實體如果適用一個父類的話,那一定是適用於其子類 ...
以一個關於課程的例子展示開閉原則: 項目上線,課程正常銷售,但是我們產品需要做些活動來促進銷售,比如:打折。那么問題來了:打折這一動作就是一個變化,而我們要做的就是擁抱變化,現在開始考慮如何解決這個問題,可以考慮下面三種方案: 1、修改接口 在之前的課程接口 ...
里氏替換原則強調的是設計和實現要依賴於抽象而非具體;子類只能去擴展基類,而不是隱藏或者覆蓋基類,它包含4層含義. 一、里氏替換4原則 1、子類可以實現父類的抽象方法,但不能覆蓋父類的非抽象方法 子類可以實現父類的抽象方法,但不能覆蓋父類的非抽象方法,父類中凡是已經實現好的方法 ...
組合/聚集復用原則 組合/聚合復用原則(Composite/Aggregate Reuse Principle CARP).組合和聚合都是對象建模中關聯(Association)關系的一種.聚合表示整體與部分的關系,表示“含有”,整體由部分組合而成,部分可以脫離整體作為一個獨立的個體 ...