合成復用原則

2021-09-26 08:25:13 字數 713 閱讀 2723

合成復用原則是指盡量使用物件組合/聚合而不是繼承關係達到軟體復用的目的,可以是系統更加靈活,降低類與類之間的耦合度,乙個類的變化對其他類造成的影響相對較小。

繼承叫做白箱復用,相當與把所有的實現細節暴露給子類,物件組合/聚合稱為黑箱復用,我們是無法獲取到類以外的物件的實現細節,雖然我們要根據業務場景來寫**,但也要遵循oop模型。下面我們已運算元據庫為例。

public class dbconnection 

}public class productdao

public void addproduct()

}

這就是一種非常典型的合成復用原則的應用場景,但是就目前的設計來說,dbconnection還不是一種抽象,不便與系統擴充套件,目前的場景支援mysql資料庫連線,要是業務發生變化,我們現在要用oracle資料庫連線,當然我們可以直接在dbconnection內直接修改,但是這樣的話,就會違背開閉原則,其實我們也可以不修改而是將dbconnection修改為abstract,下面我們來看**:

public abstract class dbconnection

public class mysqlconnection extends dbconnection

}public class oracleconnection extends dbconnection

}

合成復用原則

合成復用原則 composite reuse principle,crp 又叫組合 聚合復用原則 composition aggregate reuse principle,carp 它要求在軟體復用時,要盡量先使用組合或者聚合等關聯關係來實現,其次才考慮使用繼承關係來實現。抽象汽車類 class ...

合成復用原則

合成復用原則的定義 合成復用原則 composite aggregate reuse principle,carp 指盡量使用物件組合 has a 或物件聚合 contanis a 的方式實現 復用,而不是用繼承關係達到 復用的目的。合成復用原則可以使系統更加靈活,降低類與類之間的耦合度,乙個類的變...

合成復用原則

合成復用原則是指 盡量先使用組合或者聚合等關聯關係來實現,其次才考慮使用繼承關係來實現。通常類的復用分為繼承復用和合成復用兩種。繼承復用雖然有簡單和易實現的優點,但它也存在以下缺點 a 繼承復用破壞了類的封裝性。因為繼承會將父類的實現細節暴露給子類,父類對子類是透明的,所以這種復用又稱為 白箱 復用...