開放 封閉 原則 II

開放 封閉 原則 II

開放 封閉 原則 II

開放 封閉 原則 II

無論模組多封閉,都會存在一些無法對之封閉的變化。
既然不可能完全封閉,設計人員必須對於他設計的模組
應該對哪種變化封閉做出選擇。他必須先猜測出最有可能
發生的變化種類,然後構造抽象來隔離那些變化。

在最初撰寫程式碼時,假設變化不會發生。當變化發生時,
可以建立抽象來隔離以後發生的同類變化。面對需求,對
程式的改動是透過增加新程式碼進行的,而不是更改現有的
程式碼,這就是開放封閉原則的精神。

希望在開發工作不久就知道可能發生的變化,查明可能發生
的變化所等待的時間越長,要建立正確的抽象就越困難。
開放封閉原則是物件導向設計的核心所在,遵循這個原則可以
帶來物件導向技術所聲稱的巨大好處,也就是可維護、可擴展、
可複用、靈活性好。開發人員應該僅對程式中呈現出頻繁變化
的那些部分做出抽象。對於應用程式中的每個部分都刻意地
進行抽象同樣不是一個好主意。拒絕不成熟的抽象和抽象本身
一樣重要。