设计原则(6):开闭原则
開(kāi)閉原則:開(kāi)閉原則告訴我們應(yīng)盡量通過(guò)擴(kuò)展軟件 實(shí)體的行為來(lái)實(shí)現(xiàn)變化,而不是通過(guò)修改已有的代碼來(lái)完成變化,它是為軟件實(shí)體的未來(lái)事件而制定的對(duì)現(xiàn)行 開(kāi)發(fā)設(shè)計(jì)進(jìn)行約束的一個(gè)原則。
我們舉個(gè)例子說(shuō)明一下:以書(shū)店銷(xiāo)售書(shū)籍為例,其類(lèi)圖如圖6-1所示。
現(xiàn)在問(wèn)題來(lái)了,如果現(xiàn)在需要對(duì)書(shū)籍進(jìn)行打折,我們應(yīng)該怎么做呢?如下:使用擴(kuò)展的類(lèi)進(jìn)行業(yè)務(wù)邏輯處理,來(lái)達(dá)到書(shū)籍打折業(yè)務(wù)的修改。
我們?nèi)绾问褂瞄_(kāi)閉原則呢?
** 抽象約束**:抽象是對(duì)一組事物的通用描述,沒(méi)有具體的實(shí)現(xiàn),也就表示它可以有非常多的可能性,可以跟隨需求的變 化而變化。因此,通過(guò)接口或抽象類(lèi)可以約束一組可能變化的行為,并且能夠?qū)崿F(xiàn)對(duì)擴(kuò)展開(kāi)放,其包含三層含 義:第一,通過(guò)接口或抽象類(lèi)約束擴(kuò)展,對(duì)擴(kuò)展進(jìn)行邊界限定,不允許出現(xiàn)在接口或抽象類(lèi)中不存在的public 方法;第二,參數(shù)類(lèi)型、引用對(duì)象盡量使用接口或者抽象類(lèi),而不是實(shí)現(xiàn)類(lèi);第三,抽象層盡量保持穩(wěn)定,一 旦確定即不允許修改,還是以銷(xiāo)售書(shū)籍為例:類(lèi)圖如下 :
總結(jié)
以上是生活随笔為你收集整理的设计原则(6):开闭原则的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Oracle定时器(Job)各时间段写法
- 下一篇: OA 办公系统 模块设计