1. 何為開放-關(guān)閉原則
定義:一個(gè)軟件實(shí)體(如類、模塊绞佩、函數(shù))應(yīng)當(dāng)對(duì)擴(kuò)展開放寺鸥,對(duì)修改關(guān)閉。
在項(xiàng)目開發(fā)的時(shí)候品山,都不能指望需求是確定不變化的胆建,大部分情況下,需求是變化的肘交。那么如何應(yīng)對(duì)需求變化的情況笆载?這就是開放-關(guān)閉原則要談的。
開放-封閉原則的思想就是設(shè)計(jì)的時(shí)候,盡量讓設(shè)計(jì)的類做好后就不再修改凉驻,如果有新的需求腻要,通過新加類的方式來滿足,而不去修改現(xiàn)有的類(代碼)涝登。那么在實(shí)際的項(xiàng)目開發(fā)中闯第,是否能做到絕對(duì)的對(duì)修改關(guān)閉呢?答案一般也是否定的缀拭。既然這樣咳短,那么就要求我們?cè)陂_發(fā)前,去找出變化點(diǎn)蛛淋,然后針對(duì)變化點(diǎn)構(gòu)造抽象咙好,隔離出這些變化。由此可見褐荷,實(shí)現(xiàn)開閉原則關(guān)鍵是抽象勾效。
優(yōu)點(diǎn)
具有靈活性,通過拓展一個(gè)功能模塊即可實(shí)現(xiàn)功能的擴(kuò)充叛甫,不需修改內(nèi)部代碼层宫。
具有穩(wěn)定性,表現(xiàn)在基本功能類不允許被修改其监,使得被破壞的程度大大下降萌腿。
2. 設(shè)計(jì)模式的六大原則總結(jié)
對(duì)于設(shè)計(jì)模式的六大設(shè)計(jì)原則,單一職責(zé)原則主要說明類的職責(zé)要單一抖苦;里氏替換原則強(qiáng)調(diào)不要破壞繼承體系毁菱;依賴倒置原則描述要面向接口編程;接口隔離原則講解設(shè)計(jì)接口的時(shí)候要精簡(jiǎn)锌历;迪米特法則告訴我們要降低耦合贮庞;開閉原則講述的是對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉究西。
六大設(shè)計(jì)原則并沒有很明顯的界限窗慎,當(dāng)我們?cè)谧袷啬骋粋€(gè)設(shè)計(jì)原則的時(shí)候,可能也遵守了其他的設(shè)計(jì)原則卤材。設(shè)計(jì)原則是后面要講述的設(shè)計(jì)模式的基礎(chǔ)遮斥,因此在本系列講述設(shè)計(jì)模式之前,對(duì)設(shè)計(jì)原則進(jìn)行了解說