可復用設計 原則

2021-06-12 09:26:19 字數 680 閱讀 7367

一、開閉原則

「software entities should be open for extension,but closed for modification」。翻譯過來就是:「軟體實體應當對擴充套件開放,對修改關閉」,通俗的講就是增加新功能而不修改源**。

二、lsp(黎克特制轉換原則)

任何基類可以出現的地方,子類一定可以出現。

lsp講的是基類和子類的關係。只有當這種關係存在時,黎克特制代換關係才存在。如果兩個具體的類a,b之間的關係違反了lsp的設計,(假設是從b到a的繼承關係)那麼根據具體的情況可以在下面的兩種重構方案中選擇一種。

-----建立乙個新的抽象類c,作為兩個具體類的超類,將a,b的共同行為移動到c中來解決問題。

-----從b到a的繼承關係改為委派關係

三、dip(依賴倒轉原則)

抽象不應該依賴於細節,細節應當依賴於抽象。

要針對介面程式設計,而不是針對實現程式設計。

傳遞引數,或者在組合聚合關係中,盡量引用層次高的類。

四、isp(介面隔離原則)

使用多個專門的介面比使用單一的總介面要好。

乙個類對另外乙個類的依賴性應當是建立在最小的介面上的。

乙個介面代表乙個角色,不應當將不同的角色都交給乙個介面。沒有關係的介面合併在一起,形成乙個臃腫的大介面,這是對角色和介面的汙染。

五、抽象類

六、介面

物件導向設計原則 合成復用原則

合成復用原則又稱為組合 聚合復用原則 composition aggregate reuse principle,carp 其定義如下 合成復用原則 composite reuse principle,crp 盡量使用物件組合,而不是繼承來達到復用的目的。合成復用原則就是在乙個新的物件裡通過關聯關係...

軟體設計原則 合成復用原則

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

軟體設計原則 合成復用原則

合成復用原則 composite aggregate reuse principle,carp 盡量使用物件組合 聚合,而不是繼承關係 很典型合成復用 建立乙個資料庫連線類 public class dbconnection 連線的資料庫的demo public class demodao publ...