開放-封閉原則,是說軟體實體(類、模組、函式等等)應該可以擴充套件,但是不可以修改。
這個原則有兩個特徵:1、對於擴充套件是開放的;2、對於更改是封閉的。
但是,在軟體設計中,絕對的修改關閉是不可能的。無論模組是多麼的封閉,都會存在一些無法對之封閉的變化。既然不可能完全封閉,設計人員必須對於他設計的模組應該對哪種變化封閉做出選擇。他必須先猜測除最有可能發生的變化種類,然後構造抽象來隔離那些變化。等到變化發生時立即採取行動。
當然,在開發的過程中,我們對於需求的變化,有可能判斷錯誤。在最初編寫**時,可以假設變化不會發生。當變化發生時,我們就建立抽象來隔離以後發生的同類變化。當我們面對時,對程式的改動是通過增加新**進行的,而不是更改現有的**。
在開發程式的過程中,查明可能發生的變化所等待的時間越長,要建立正確的抽象就越困難。
開放-封閉原則是物件導向設計的核心所在。遵循這個原則可以帶來物件導向技術所聲稱的巨大好處,也就是可維護、可擴充套件、可復用、靈活性好。開發人員應該僅對程式中呈現除頻繁變化的那些部分做出抽象,然而,對於應用程式中的每個部分都刻意進行抽象同樣不是乙個好主意。拒絕不成熟的抽象和抽象本身一樣重要。
設計模式之開放 封閉原則學習
開放封閉原則 軟體實體應該可以擴充套件,但是不可以修改。它有兩個特性 一,對擴充套件是開放的,二 對修改是封閉的。開放即可以操作,關閉即不可以操作。在設計模式中,這種不能修改卻可以擴充套件的思想,就是開放封閉原則 我們在做任何系統時,不要奢望系統一開始需求就確定。這是不現實也是不科學的。既然需求是變...
設計模式之開放封閉原則
親愛的博友們,感謝來到darren的部落格 最近一直很忙,今天抽空開了一下開放封閉原則,再這裡和各位分享一下學習心得 開放封閉原則 軟體實體 類,模組,函式 等等,對於擴充套件是開放的,對於修改是封閉的。對於程式設計而言,怎麼的設計才能面對需求的改變卻可以保持相對的穩定,從而可以使得系統可以再第乙個...
設計模式之開放封閉原則
public inte ce ibankprocess public class depositprocess ibankprocess public class withdrawprocess ibankprocess public class transferprocess ibankproce...