开闭原则讲解
現(xiàn)在我來學(xué)習(xí)一下開閉原則,一個軟件實體如類,模塊和函數(shù)應(yīng)該對擴展開放,對修改關(guān)閉,所謂開閉也是對擴展,修改兩個行為的原則,強調(diào)的是構(gòu)架框架,實現(xiàn)擴展細(xì)節(jié),有點是提高軟件系統(tǒng)的可復(fù)用性和可維護(hù)性,那開閉原則是面向?qū)ο笞罨A(chǔ)的設(shè)計原則,他知道我們?nèi)绾谓⒎€(wěn)定靈活的系統(tǒng),例如我們版本更新,盡量不修改源代碼,但是可以增加新功能,那么在實際生活中還有一個體現(xiàn),例如我們很多互聯(lián)網(wǎng)公司,每天工作八小時,對于每天你工作八小時,修改是關(guān)閉的,但是對于什么時候來,什么時候走,這個制度是開放的,那如果早點來呢,可以早點走,晚點來就晚點走,總之要滿足工作8小時,這也是實際工作中對開閉原則的一個體現(xiàn),那實現(xiàn)開閉原則的核心思想,是面向抽象編程,打個比方,比如我們對于校驗這樣一個業(yè)務(wù)邏輯,校驗一般還分順序,先校驗什么,后校驗什么,再校驗什么,然后再校驗什么,那如果我們代碼模塊之間,設(shè)計的好,那么對于新增這樣的一個規(guī)則,所謂的擴展,對于這樣的功能,是開放的,而我們新增一個校驗規(guī)則的話,盡量不要去修改原來的校驗代碼,以免引入新的風(fēng)險,那這里面強調(diào)一下,實現(xiàn)開閉原則的核心思想,就是面向抽象編程,就是面向具體的實現(xiàn)編程,因為抽象相對來說是穩(wěn)定的,讓類去依賴于固定的抽象,所以對于修改來說就是封閉的,而通過面向?qū)ο蟮睦^承,及多態(tài)的機制,那就可以實現(xiàn)抽象里的繼承了,那通過重寫,改變其固有方法,或者實現(xiàn)新的擴展方法,那變化發(fā)生時,我們可以創(chuàng)建抽象隔離以后,不可能發(fā)生的同類變化,關(guān)鍵的核心在于,實現(xiàn)抽象化,我們怎么從業(yè)務(wù)場景當(dāng)中抽象出來,并且從抽象具體化一個實例,那這幾個原則講起來比較抽象,那不要緊,我們每個原則都有配套的業(yè)務(wù)場景
?
總結(jié)
- 上一篇: 服务器集群后产生那些问题
- 下一篇: 开闭原则coding