軟體開發的乙個不變真理:不變的是變化
1. 把會變化的部分取出來並「封裝」起來,好讓其他部分不受影響。(封裝變化)
2. 針對介面程式設計(真正的意思是「針對超型別」程式設計),而不是針對實現程式設計。
針對實現程式設計3.多用組合,少用繼承。dog d = new dog();
d.bark();
宣告變數 d 為 dog的型別,(是animails的具體實現),會造成我們必須針對具體實現程式設計。
但是,「針對介面/超型別程式設計」,做法如下
animal animal = new dog();
animal.makesound();
我們知道該物件是狗,但是我們在利用animal進行多型的呼叫。
4.為了物件之間的松耦合設計而努力。
物件導向設計原則 java設計模式(一)
單一職責原則 開閉原則 黎克特制替換原則 依賴倒轉原則 介面隔離原則 合成復用原則 迪公尺特法則 確保可復用性。實現設計方案或者源 的復用。乙個類的職責越多,被復用的可能性越小。當其中乙個職責變化時,可能會影響到其他職責的運作。因此需要職責分離。重構版本 拆分為3個類。基類可以設計為抽象類 介面,增...
Java物件導向16種設計原則
一 類的設計原則 1 依賴倒置原則 dependency inversion principle dip 2 黎克特制替換原則 liskov substitution principle lsp 3 介面分隔原則 inte ce segregation principle isp 4 單一職責原則 ...
物件導向設計原則
oo原則 封裝變化 多用組合,少用繼承 針對介面程式設計,不針對實現程式設計 為互動物件之間的松耦合而努力 類應該對擴充套件開放,對修改關閉 依賴抽象,不要依賴具體類 只和朋友交談 別找我,我會找你 類應該只有乙個改變的理由 從設計原則到設計模式 針對介面程式設計,而不是針對實現程式設計 客戶無需知...