2014年6月10日 星期二

物件導向軟體工程:Open-Closed Principle

"Software entities should be open for extension but closed for modification"
 by Bertrand Meyer 

"軟體需要可以延伸,而不該修改"

程式碼不該因需求,而修改上層父類別架構,較容易導致程式的崩毀,因為程式模組之間有耦合(coupling)的問題,一旦程式修改可能牽一髮動全身,造成無法想像的問題。

因此依照Open-Closed Principle所提的,系統應該透過增加新的程式碼擴充系統功能,而不是修改既有的程式碼,來增加系統功能,規避修改程式碼可能的後果。

實作起來,像是安裝套件一樣,每個插件都是獨立而不會互相牽連,同時不會改變原本系統的運作。

若能盡可能的使用OCP,將可避免牽一髮動全身的風險,減少不必要的麻煩。





沒有留言:

張貼留言