4.1 什么是開---閉原則
這個原則說的是,在設(shè)計一個模塊的時候,應(yīng)當(dāng)使這個模塊可以在不被修改的前提下被擴(kuò)展。換言之,應(yīng)當(dāng)可以在不必修改源代碼的情況下改變這個模塊的行為。
滿足開---閉原則的設(shè)計可以給一個系統(tǒng)兩個無可比擬的優(yōu)越性:
·通過擴(kuò)展已有的軟件系統(tǒng),可以提供新的行為,以滿足對軟件的新需求,使變化中的軟件系統(tǒng)有一定適應(yīng)性和靈活性。
·已有的軟件模塊,特別是最重要的抽象層不能再修改,這就使變化中的軟件系統(tǒng)有一定的穩(wěn)定性和延續(xù)性。
具有這兩個有點(diǎn)的軟件系統(tǒng)是一個在高層次上實(shí)現(xiàn)了復(fù)用的系統(tǒng),也是一個易于維護(hù)的系統(tǒng)。
4.2 怎樣做到開---閉原則
玉帝招安美猴王
不勞師動眾、不破壞天規(guī)便是“閉”,收仙有道便是“開”。招安之法便是玉帝天庭的“開--閉”原則,通過給美猴王封一個“弼馬溫”的官職,便可使現(xiàn)有系統(tǒng)滿足變化了的需求,而不必更改天庭的既有的秩序,如下圖:

招安之法的關(guān)鍵便是不允許更改現(xiàn)有的天庭秩序,但允許將妖猴納入現(xiàn)有的秩序中,從而擴(kuò)展了這一秩序。用面向?qū)ο蟮恼Z言來講,不允許更改的是系統(tǒng)的抽象層,而允許擴(kuò)展的是系統(tǒng)的實(shí)現(xiàn)層。