首頁 » 物件導向 » [SOLID原則(二)] 開閉原則(OCP)

[SOLID原則(二)] 開閉原則(OCP)

作者:

分類:

甚麼是SOLID?

SOLID,是由Robert C. Martin等人提出的5個物件導向設計原則的英文字首組成,分別為單一職責(S)開閉原則(O)、里氏替換(L)、介面隔離(I)以及依賴反轉(D)。SOLID提供程式開發者良好的設計指引,可以開發出易理解、易維護、易拓展的系統。

開閉原則(OCP)

The Open/Closed Principle,OCP

“software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification”

譯文:「軟體中的對象(類別,模塊,函數…等)應該對於擴展是開放的,但是對於修改是封閉的。」

意思是擴充功能時,應該避免修改到原本的程式碼

該如何遵守開閉原則?則需要用到物件導向的技巧,以及單一職責原則(SRP),將物件拆成具有共同介面或是類別的模組,如此在擴充時只需要繼承模組的框架並實作內容(多型)即可,並不會修改到現有程式,可以減少不必要的bug產生。

例如軟體開發過程常會遇到需要追加功能的時候,像是控制模組需要增加新的控制器,最簡單的做法就會在切換控制器的方法內新增一個case,但這樣就違反了開閉原則。

在起初系統規模不大的話,或許還不至於看不懂,但當系統規模隨時間逐漸成長,模組會不斷的擴充,這時就需要討論如何重構

若軟體開發過程適時的回頭檢視過往的程式,並嘗試應用適當的pattern去優化,除了可以提升系統的強健性外,對於自己而言也是一種提升吧!

參考文章

「cian」的個人頭像

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *