面向對象設計原則

1. 問題:軟件的很多部分是變化的,,而我們要擁抱變化,如何能做到擁抱變化呢?


2. 答案:給變化留出空間,讓它有空間去變化,讓它不要影響不變化的部分,讓它在擴展功能時不要影響已經完成的功能,讓它在改變自己功能的時候不要去影響其他不用改變的功能。


3. 給答案換個描述:上面這個答案引出了面向對象原則的最重要的原則---開閉原則,對修改關閉,對擴展開放。


4. 解決方式:如何做到開閉原則?引出了另一重大原則----依賴倒置,不依賴具體實現,依賴於抽象,簡單說就是,用的是接口或者抽象類,不用具體實現,當真正使用的時候依賴注入具體實現,那麼使用方的代碼,設計好接口和抽象類之後就基本不會改變,就做到了對修改關閉,而需要擴展或者修改現有功能時,只需要追加新的實現類或者修改現有實現類,就做到了對擴展開放。


5. 解決方式的技術基礎:就是原則----里氏替換原則,任何基類出現的地方都能用子類代替,就是說使用方用的雖然是接口和抽象類,但是真正調用時可以替換成他們的具體實現類,這個原則也是繼承複用的基石。


6. 剩餘原則:接口隔離,單一職責,最少知道(迪米特),多用組合少用繼承。


7. 各個原則結合使用,終極目標就是設計出 高內聚低耦合 的系統。

發佈了19 篇原創文章 · 獲贊 4 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章