开放封闭原则
開放封閉原則
? ? ? ? ? 開放封閉原則:就是軟件實體(類、模塊、函數(shù)等等),應(yīng)該可以擴(kuò)展,但是不可修改。
? ? ? ? ??這個原則有兩個特征,一個是說對于擴(kuò)展是開放的,另一個是說對于更改時封閉的。
? ? ? ? ??軟實體包括:
? ? ? ? ??1、項目或軟件產(chǎn)品中按照一定的邏輯規(guī)則劃分的模塊。
? ? ? ? ??2、抽象和類。
? ? ? ? ??3、方法。
? ? ? ? ??無論模塊是多么的封閉,都會存在一些無法對之封閉的變化,既然不可能完全封閉,設(shè)計人員必須對于他設(shè)計的模塊,應(yīng)該對哪種變化封閉做出選擇,必須先猜測出最有可能發(fā)生的變化種類,然后構(gòu)造抽象來隔離那些變化。
? ? ? ? ??在我們最初編寫代碼時,假設(shè)變化不會發(fā)生,當(dāng)變化發(fā)生時,我們就創(chuàng)建抽象來隔離以后發(fā)生的同類變化。
? ? ? ? ??面對需求,對程序的改動是通過增加新代碼進(jìn)行的,而不是更改現(xiàn)有的代碼。
? ? ? ? ??我們希望的是在開發(fā)工作展開不就就知道可能發(fā)生的變化,查明可能發(fā)生的變化所等待的時間越長,要創(chuàng)建正確的抽象就越困難。
? ? ? ? ??開放封閉原則——是面向?qū)ο笤O(shè)計的核心所在,遵循這個原則可以帶來面向?qū)ο蠹夹g(shù)所聲稱的巨大好處,也就是可維護(hù),可擴(kuò)展,可復(fù)用,靈活性好,開發(fā)人員應(yīng)該僅對程序中呈現(xiàn)出頻繁變化的那些部分做出抽象,然而,對于應(yīng)用程序中的每個部分,都刻意的進(jìn)行抽象,同樣不是一個好主意,拒絕不成熟的抽象和抽象本身一樣重要。
? ? ? ? ??開放封閉原則對擴(kuò)展開放,對修改關(guān)閉,并不意味著不做任何修改,底層模塊的變更,必然要有高層模塊進(jìn)行耦合,否則就是一個孤立無意義的代碼片段。
? ? ? ? ??我們可以把變化分為如下三種:
? ? ? ? ??1、邏輯變化。
? ? ? ? ??2、子模塊變化。
? ? ? ? ??3、可見視圖變化。
總結(jié)
- 上一篇: 三层登录VB.NET实现
- 下一篇: 合成/聚合复用原则