好文共享 - SOLID Principles: Improve Object-Oriented Design in Python

文章& Python 範例: https://realpython.com/solid-principles-python/

SOLID 原則很重要的心法,可以讓你寫出更有組織、更好維護的程式。 SOLID 是由 5 個原則的首字組成的,分別是:

  • Single-Responsibility Principle (SRP)
  • Open-Closed Principle (OCP)
  • Liskov Substitution Principle (LSP)
  • Interface Segregation Principle (ISP)
  • Dependency Inversion Principle (DIP)

簡單來說:

  1. 每個函式都應該盡量只負責單一職責,避免包山包海導致程式邏輯太多,不僅不好閱讀,也不好維護
  2. 程式設計的可擴充性並非透過修改的方式達成,例如要新增一種交通工具的話,較好的做法應該是透過繼承類別 Vehicle 的方式進行,而非修改 Vehicle 原本的 code 進行擴充
  3. 繼承相同類別的 subtype 都要能夠輕鬆相互替換,而不造成系統問題,例如所有的金流都繼承自相同類別,擁有共通的方法,因此這些金流服務可以隨使用者偏好進行切換/抽換都不會影響系統功能,程式碼也不會有過多的重複
  4. 介面(interface)的制定應該依賴核心功能即可,需要時透過 composition 進行多重繼承,組合出你要的類別,例如一個 class 應該繼承 Fax 與 Printer 2 種類別以表示該類別有 Fax 與 Printer 2 種功能,而非在 Printer 類別中添加 Fax 功能,因為 Fax 並不是 Printer 的核心依賴功能
  5. 依賴反轉原則,透過抽象化介面,讓物件之間透過議定好的介面進行溝通,變成依賴的是介面,而非物件的程式細節

追蹤新知

看完這篇文章了嗎?還意猶未盡的話,追蹤粉絲專頁吧!

我們每天至少分享 1 篇文章/新聞或者實用的軟體/工具,讓你輕鬆增廣見聞提升專業能力!如果你喜歡我們的文章,或是想了解更多特定主題的教學,歡迎到我們的粉絲專頁按讚、留言讓我們知道。你的鼓勵,是我們的原力!

贊助我們的創作

看完這篇文章了嗎? 休息一下,喝杯咖啡吧!

如果你覺得 MyApollo 有讓你獲得實用的資訊,希望能看到更多的技術分享,邀請你贊助我們一杯咖啡,讓我們有更多的動力與精力繼續提供高品質的文章,感謝你的支持!