單一職責原則
開閉原則
黎克特制替換原則
依賴倒轉原則
介面隔離原則
合成復用原則
迪公尺特法則
確保可復用性。實現設計方案或者源**的復用。
乙個類的職責越多,被復用的可能性越小。當其中乙個職責變化時,可能會影響到其他職責的運作。因此需要職責分離。
重構版本:拆分為3個類。
基類可以設計為抽象類、介面,增加新的功能通過增加新的子類實現,無需修改原有**。
重構版本:針對資料轉化抽象類程式設計,通過配置檔案指定實現類。
需要注意介面也不能劃分太小,否則會介面氾濫,通常介面中僅包含某一類使用者定製的方法。
重構版本:根據資料來源格式和生成報告還是圖表確定4個介面,每個介面角色較為單一。
通過繼承的復用會將基類的實現暴露給子類,破壞封裝性,稱為白箱復用;通過關聯復用則成員變數的內部實現不可見,稱為黑箱復用。
重構版本:將工具類的父類作為dao類的成員變數使用,dao類針對父類程式設計。不同資料庫的工具類可以繼承父類工具類,從而實現功能的擴充套件。
乙個物件應該只和自己的朋友相互作用,包括:
物件本身。
依賴物件:以引數形式傳入方法的物件、建立的物件。
關聯物件:成員變數,包含成員變數這一集合的元素。
重構版本:使用控制項互動的中間類,降低控制項的耦合度,新增控制項只需要修改中間類即可。
java物件導向設計原則
軟體開發的乙個不變真理 不變的是變化 1.把會變化的部分取出來並 封裝 起來,好讓其他部分不受影響。封裝變化 2.針對介面程式設計 真正的意思是 針對超型別 程式設計 而不是針對實現程式設計。針對實現程式設計 dog d new dog d.bark 宣告變數 d 為 dog的型別,是animail...
Java與模式 物件導向的設計原則與設計模式
物件導向的設計原則 1 開 閉 原則 open closed principle,或者ocp software entities should be open for extension,but closed for modification 2 黎克特制代換原則 liskov substituti...
物件導向設計 設計原則
職責單一 例如乙個類的只能負責單一的職責 開放 封閉原則 對擴充套件的開放,對修改的封閉。用新的類處理問題,不去修改現有類 liscov替換原則 子類可以替換父類 在沒有過載方法的情況下 依賴倒置原則 依賴介面,不要依賴具體實現。針對介面程式設計,不針對實現程式設計 緊耦合 類似於電腦中可插拔 更換...