原則是盡量使用合成或者聚合的方式,而不是使用繼承
場景:有兩個類a和b,b要使用a中的方法有哪幾種方法
方法一(使用繼承,不符合合成復用):
類圖
**實現:
package com.ldx.compositereuse;
public
class
cr1}
classa}
class
bextends
a
執行結果:
方法二(使用依賴,符合合成復用)
類圖:
**實現:
package com.ldx.compositereuse;
public
class
cr2}
classa2}
class
b2}
執行結果:
方法三:(使用聚合,符合合成復用)
類圖:
實現**:
package com.ldx.compositereuse;
public
class
cr3}
classa3}
class
b3}
方法四:(使用組合,符合合成復用原則)
組合和聚合的區別:聚合的兩個類生命週期互不影響,而組合不同,如a組合於b,當b的生命週期結束時,a的生命週期也結束。
類圖:
package com.ldx.compositereuse;
public
class
cr4}
classa4}
class
b4
執行結果:
小結:
合成復用原則就是盡量使用依賴、組合、聚合等方式去建立類之間的關係,少使用繼承。
七大設計原則彙總:七大設計原則彙總
設計模式七大原則之合成復用原則
合成復用原則 composite reuse principle 盡量使用組合或者聚合的方式而不是繼承達到軟體復用的原則.繼承會增加物件間的耦合性,繼承稱之為白箱復用,相當於把所有的實現細節暴露給子類.組合 聚合稱之為黑箱復用,對類以外的物件時無法獲取到實現細節的.類圖 演示 package com...
設計模式之七大原則 合成復用原則(七)
合成復用原則是物件導向設計原則的 7 條原則中剩下的最後一條,下面我們將對其進行詳細地介紹。合成復用原則 composite reuse principle,crp 又叫組合 聚合復用原則 composition aggregate reuse principle,carp 它要求在軟體復用時,要盡...
七大原則 合成復用原則
合成復用原則 composite reuse principle,crp 又叫組合 聚合復用原則 composition aggregate reuse principle,carp 它要求在軟體復用時,要盡量先使用組合或者聚合等關聯關係來實現,其次才考慮使用繼承關係來實現。如果要使用繼承關係,則必...