一幼苛、SOLID
設(shè)計(jì)模式的六大原則有:
- Single Responsibility Principle:?jiǎn)我宦氊?zé)原則
- Open Closed Principle:開閉原則
- Liskov Substitution Principle:里氏替換原則
- Law of Demeter:迪米特法則
- Interface Segregation Principle:接口隔離原則
- Dependence Inversion Principle:依賴倒置原則
把這六個(gè)原則的首字母聯(lián)合起來(兩個(gè) L 算做一個(gè))就是 SOLID (solid礁竞,穩(wěn)定的)恢氯,其代表的含義就是這六個(gè)原則結(jié)合使用的好處:建立穩(wěn)定涎嚼、靈活阱州、健壯的設(shè)計(jì)。下面我們來看一下開閉原則法梯。
設(shè)計(jì)模式六大原則(SOLID)
二苔货、開閉原則定義
一個(gè)軟件實(shí)體,如類、模塊和函數(shù)應(yīng)該對(duì)擴(kuò)展開放夜惭,對(duì)修改關(guān)閉
Software entities like classes, modules and functions should be open for extension but closed for modification
三姻灶、變化帶來的問題
在軟件的生命周期內(nèi),因?yàn)樽兓┘耄?jí)和維護(hù)等原因需要對(duì)軟件原有代碼進(jìn)行修改木蹬,可能會(huì)給舊代碼引入錯(cuò)誤,也有可能會(huì)使我們不得不對(duì)整個(gè)功能進(jìn)行重構(gòu)若皱,并且需要原有代碼經(jīng)過重新測(cè)試镊叁。
四、用開閉原則改善因變化帶來的問題
當(dāng)軟件需要變化時(shí)走触,盡量通過擴(kuò)展軟件實(shí)體的行為來實(shí)現(xiàn)變化晦譬,而不是通過修改已有的代碼來實(shí)現(xiàn)。
開閉原則是面向?qū)ο笤O(shè)計(jì)中最基礎(chǔ)的設(shè)計(jì)原則互广,它指導(dǎo)我們?nèi)绾谓⒎€(wěn)定靈活的系統(tǒng)敛腌,開閉原則只定義了對(duì)修改關(guān)閉,對(duì)擴(kuò)展開放惫皱。其實(shí)只要遵循SOLID中的另外5個(gè)原則像樊,設(shè)計(jì)出來的軟件就是符合開閉原則的。
五旅敷、用抽象構(gòu)建架構(gòu)生棍,用實(shí)現(xiàn)擴(kuò)展細(xì)節(jié)
用抽象構(gòu)建架構(gòu),用實(shí)現(xiàn)擴(kuò)展細(xì)節(jié)媳谁。因?yàn)槌橄箪`活性好涂滴,適應(yīng)性廣,只要抽象的合理晴音,可以基本保證架構(gòu)的穩(wěn)定柔纵。而軟件中易變的細(xì)節(jié),我們用從抽象派生的實(shí)現(xiàn)類來進(jìn)行擴(kuò)展锤躁,當(dāng)軟件需要發(fā)生變化時(shí)搁料,我們只需要根據(jù)需求重新派生一個(gè)實(shí)現(xiàn)類來擴(kuò)展就可以了,當(dāng)然前提是抽象要合理系羞,要對(duì)需求的變更有前瞻性和預(yù)見性郭计。