SOLID
目的是讓開發者或管理者在面對程式碼需要改變時,能有一套策略來應對。
Uncle Bob (Clean Code 作者) 提出了 5 個設計原則 :
- 單一職責原則(The Single Responsibility Principle, 簡稱 SRP)
- 開放-封閉原則 (The Open-Close Principle, 簡稱 OCP)
- 里氏替換原則 (The Liskov Substitution Principle, 簡稱 LSP)
- 接口隔離原則 (Interface Segregation Principle, 簡稱 ISP)
- 依賴反轉原則 (The Dependency Inversion Principle, 簡稱 DIP)
單一職責原則(The Single Responsibility Principle) :
- 指的是一個類只應該有一個單一的職責。換句話說,一個類應該只負責完成一件事情,並且應該只有一個引起它變化的原因。如果一個類承擔了太多的職責,那麼它將變得難以維護和擴展 (高內聚性,低耦合)。
開放-封閉原則 (The Open-Close Principle, 簡稱 OCP) :
- 指的是一個軟體實體應該對擴展開放,對修改封閉。也就是說,當我們需要對軟體進行修改時,應該通過新增新的程式碼來擴展它,而不是修改已有的程式碼。這樣可以確保原有程式碼的穩定性和可靠性。
里氏替換原則 (The Liskov Substitution Principle, 簡稱 LSP) :
- 指的是子類型必須能夠替換掉它們的父類型。換句話說,一個程式中的對象應該可以被它們的子類型所替換,而不會產生任何意外的行為。這可以確保程式碼的可重用性和靈活性。
接口隔離原則 (Interface Segregation Principle, 簡稱 ISP) :
- 指的是客戶端不應該強制依賴於它們不需要的介面。換句話說,一個介面應該只包含客戶端需要的方法,而不應該包含其他不需要的方法。這可以避免程式碼的冗餘和複雜性。
依賴反轉原則 (The Dependency Inversion Principle, 簡稱 DIP) :
- 指的是高層模組不應該依賴於低層模組,它們應該都依賴於抽象。換句話說,應該通過介面或抽象類來定義依賴關係,而不是通過具體實現。這可以提高程式碼的可擴展性和靈活性。
總結 :
SOLID 原則是物件導向程式設計中的重要設計原則,可以幫助開發者建立高品質的軟體。這些原則強調了程式碼的可讀性、可維護性和可擴展性,可以提高程式碼的質量和可用性。瞭解和應用這些原則可以使開發者寫出易於理解和維護的程式碼,並且可以更快地進行迭代和升級。