設計模式之SOLID原則


介紹

設計模式中的SOLID原則,分別是單一原則、開閉原則、里氏替換原則、接口隔離原則、依賴倒置原則。前輩們總結出來的,遵循五大原則可以使程序解決緊耦合,更加健壯。

SRP 單一責任原則
OCP 開放封閉原則
LSP 里氏替換原則
ISP 接口隔離原則
DIP 依賴倒置原則

單一責任原則

指的是一個類或者一個方法只做一件事。如果一個類承擔的職責過多,就等於把這些職責耦合在一起,一個職責的變化就可能抑制或者削弱這個類完成其他職責的能力。例如餐廳服務員負責把訂單給廚師去做,而不是服務員又要訂單又要炒菜。

這里寫圖片描述

開放封閉原則

對擴展開放,對修改關閉。意為一個類獨立之后就不應該去修改它,而是以擴展的方式適應新需求。例如一開始做了普通計算器程序,突然添加新需求,要再做一個程序員計算器,這時不應該修改普通計算器內部,應該使用面向接口編程,組合實現擴展。

這里寫圖片描述

里氏替換原則

所有基類出現的地方都可以用派生類替換而不會程序產生錯誤。子類可以擴展父類的功能,但不能改變父類原有的功能。例如機動車必須有輪胎和發動機,子類寶馬和奔馳不應該改寫沒輪胎或者沒發動機。

這里寫圖片描述

接口隔離原則

類不應該依賴不需要的接口,知道越少越好。例如電話接口只約束接電話和掛電話,不需要讓依賴者知道還有通訊錄。

這里寫圖片描述

依賴倒置原則

指的是高級模塊不應該依賴低級模塊,而是依賴抽象。抽象不能依賴細節,細節要依賴抽象。比如類A內有類B對象,稱為類A依賴類B,但是不應該這樣做,而是選擇類A去依賴抽象。例如垃圾收集器不管垃圾是什么類型,要是垃圾就行。

例子圖

總述

沒人寫一款程序能完全遵守SOLID原則,甚至有些設計模式是違反SOLID原則。如何權衡就要看利是否大於弊。不足之處望指教。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM