物件導向程式設計5項基本原則 – SOLID

  • SOLID目的
  • SOLID五項原則
  • Single Responsibility Principle說明
  • Open/Close Principle說明
  • Liskov Substitution Principle說明
  • Interface Segregation Principle(ISP)說明
  • Dependency Inversion Principle(DIP)說明

目的:

寫出好維護易擴充的程式架構

SOLID五項原則:

  • Single Responsibility Principle
  • Open/Close Principle
  • Liskov Substitution Principle
  • Interface Segaration Principle(ISP)
  • Dependency Inversion Principle(DIP)

Single Responsibility Principle(SRP)
定義: 每一個class只負責一項功能
目的: 減少不必要的修改
使用前提: In code
使用方式: 撰寫時,盡量遵守此原則
例子:
對的例子、錯的例子
Open/Close Principle(OCP)
定義: 開放擴充,封閉修改
目的: 新增功能時,不必改舊code。維護既有功能時,不會影響其他class
使用前提: In code
使用方式: 撰寫時,盡量遵守此原則
例子:
對的例子、錯的例子
Liskov Substitution Principle(LSP)
定義: subclass一定要是superclass的subType
目的: 避免修改程式結構時,產生非預期的行為或狀態
使用前提: in code
使用方式: 撰寫時,盡量遵守此原則
例子:
對的例子、錯的例子(ex: 正方形繼承長方形)
Interface Segaration Principle(ISP)
定義: client端不應該依賴它不需要的method
目的: 避免產生不必要的依賴(p.s. 看依賴關係就可以知道這個class能做什麼/不能做什麼)
使用前提: in code
使用方式: 撰寫時,盡量遵守此原則
例子:
對的例子、錯的例子
Dependency Inversion Principle(DIP)
定義:
高階module不應該依賴低階module。兩者都應該依賴於抽象。
抽象不應該依賴於細節。細節應該依賴於抽象。
目的: 避免產生不必要的依賴
使用前提: in code
使用方式: 撰寫時,盡量遵守此原則
例子:
對的例子、錯的例子

Ref:

https://www.jyt0532.com/2020/03/22/lsp/

7天學會設計模式:設計模式也可以這樣學」一書

探索更多來自 LifeJourney 的內容

立即訂閱即可持續閱讀,還能取得所有封存文章。

Continue reading