大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 面向?qū)ο笤O(shè)計(jì)實(shí)踐原則有哪些

面向?qū)ο笤O(shè)計(jì)實(shí)踐原則有哪些

更新時(shí)間:2020-09-14 15:32:58 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1257次


面向?qū)ο笤O(shè)計(jì)實(shí)踐原則并不是獨(dú)立存在的,它們之間存在一定關(guān)聯(lián),就比如一個(gè)原則可能另一個(gè)原則的加強(qiáng)或基礎(chǔ),違反一個(gè)原則,可能會(huì)同時(shí)違反其它,一個(gè)影響多個(gè):


面向?qū)ο笤O(shè)計(jì)實(shí)踐原則


單一職責(zé)原則(Single-Resposibility Principle)


其核心思想為:一個(gè)類,最好只做一件事,只有一個(gè)引起它的變化。單一職責(zé)原則可以看做是低耦合、高內(nèi)聚在面向?qū)ο笤瓌t上的引申,將職責(zé)定義為引起變化的原因,以提高內(nèi)聚性來(lái)減少引起變化的原因。職責(zé)過(guò)多,可能引起它變化的原因就越多,這將導(dǎo)致職責(zé)依賴,相互之間就產(chǎn)生影響,從而大大損傷其內(nèi)聚性和耦合度。通常意義下的單一職責(zé),就是指只有一種單一功能,不要為類實(shí)現(xiàn)過(guò)多的功能點(diǎn),以保證實(shí)體只有一個(gè)引起它變化的原因。


專注,是一個(gè)人優(yōu)良的品質(zhì);同樣的,單一也是一個(gè)類的優(yōu)良設(shè)計(jì)。交雜不清的職責(zé)將使得代碼看起來(lái)特別別扭牽一發(fā)而動(dòng)全身,有失美感和必然導(dǎo)致丑陋的系統(tǒng)錯(cuò)誤風(fēng)險(xiǎn)。


開(kāi)放封閉原則(Open-Closed principle)


其核心思想是:軟件實(shí)體應(yīng)該是可擴(kuò)展的,而不可修改的。也就是,對(duì)擴(kuò)展開(kāi)放,對(duì)修改封閉的。開(kāi)放封閉原則主要體現(xiàn)在兩個(gè)方面1、對(duì)擴(kuò)展開(kāi)放,意味著有新的需求或變化時(shí),可以對(duì)現(xiàn)有代碼進(jìn)行擴(kuò)展,以適應(yīng)新的情況。2、對(duì)修改封閉,意味著類一旦設(shè)計(jì)完成,就可以獨(dú)立完成其工作,而不要對(duì)其進(jìn)行任何嘗試的修改。


實(shí)現(xiàn)開(kāi)開(kāi)放封閉原則的核心思想就是對(duì)抽象編程,而不對(duì)具體編程,因?yàn)槌橄笙鄬?duì)穩(wěn)定。讓類依賴于固定的抽象,所以修改就是封閉的;而通過(guò)面向?qū)ο蟮睦^承和多態(tài)機(jī)制,又可以實(shí)現(xiàn)對(duì)抽象類的繼承,通過(guò)覆寫其方法來(lái)改變固有行為,實(shí)現(xiàn)新的拓展方法,所以就是開(kāi)放的。


“需求總是變化”沒(méi)有不變的軟件,所以就需要用封閉開(kāi)放原則來(lái)封閉變化滿足需求,同時(shí)還能保持軟件內(nèi)部的封裝體系穩(wěn)定,不被需求的變化影響。


Liskov替換原則(Liskov-Substituion Principle)


其核心思想是:子類必須能夠替換其基類。這一思想體現(xiàn)為對(duì)繼承機(jī)制的約束規(guī)范,只有子類能夠替換基類時(shí),才能保證系統(tǒng)在運(yùn)行期內(nèi)識(shí)別子類,這是保證繼承復(fù)用的基礎(chǔ)。在父類和子類的具體行為中,必須嚴(yán)格把握繼承層次中的關(guān)系和特征,將基類替換為子類,程序的行為不會(huì)發(fā)生任何變化。同時(shí),這一約束反過(guò)來(lái)則是不成立的,子類可以替換基類,但是基類不一定能替換子類。


Liskov替換原則,主要著眼于對(duì)抽象和多態(tài)建立在繼承的基礎(chǔ)上,因此只有遵循了Liskov替換原則,才能保證繼承復(fù)用是可靠地。實(shí)現(xiàn)的方法是面向接口編程:將公共部分抽象為基類接口或抽象類,通過(guò)Extract Abstract Class,在子類中通過(guò)覆寫父類的方法實(shí)現(xiàn)新的方式支持同樣的職責(zé)。


Liskov替換原則是關(guān)于繼承機(jī)制的設(shè)計(jì)原則,違反了Liskov替換原則就必然導(dǎo)致違反開(kāi)放封閉原則。


Liskov替換原則能夠保證系統(tǒng)具有良好的拓展性,同時(shí)實(shí)現(xiàn)基于多態(tài)的抽象機(jī)制,能夠減少代碼冗余,避免運(yùn)行期的類型判別。


依賴倒置原則(Dependecy-Inversion Principle)


其核心思想是:依賴于抽象。具體而言就是高層模塊不依賴于底層模塊,二者都同依賴于抽象;抽象不依賴于具體,具體依賴于抽象。


我們知道,依賴一定會(huì)存在于類與類、模塊與模塊之間。當(dāng)兩個(gè)模塊之間存在緊密的耦合關(guān)系時(shí),最好的方法就是分離接口和實(shí)現(xiàn):在依賴之間定義一個(gè)抽象的接口使得高層模塊調(diào)用接口,而底層模塊實(shí)現(xiàn)接口的定義,以此來(lái)有效控制耦合關(guān)系,達(dá)到依賴于抽象的設(shè)計(jì)目標(biāo)。


抽象的穩(wěn)定性決定了系統(tǒng)的穩(wěn)定性,因?yàn)槌橄笫遣蛔兊模蕾囉诔橄笫敲嫦驅(qū)ο笤O(shè)計(jì)的精髓,也是依賴倒置原則的核心。


依賴于抽象是一個(gè)通用的原則,而某些時(shí)候依賴于細(xì)節(jié)則是在所難免的,必須權(quán)衡在抽象和具體之間的取舍,方法不是一層不變的。依賴于抽象,就是對(duì)接口編程,不要對(duì)實(shí)現(xiàn)編程。


面向?qū)ο笤O(shè)計(jì)實(shí)踐原則


以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“面向?qū)ο笤O(shè)計(jì)實(shí)踐原則有哪些”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。


提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 精品在线播放 | 久久这里精品青草免费 | 亚洲精品区 | 国产一区二区高清在线 | 久久精品一区二区三区日韩 | 日本aaaa精品免费视频 | 欧美成人性视频播放 | 免费一级大毛片a一观看不卡 | 亚洲精品亚洲人成人网 | 久久精品全国免费观看国产 | 欧美亚洲高清 | www.五月天婷婷 | 成人美女网 | 久久婷婷色综合老司机 | 美国一级毛片片aa久久综合 | 特黄特色一级aa毛片免费观看 | 国产免费一区二区三区在线观看 | 国产福利免费观看 | 精品中文字幕乱码一区二区 | 亚洲特级毛片 | 操碰在线视频 | 亚洲国产日韩欧美综合久久 | 久久久久久极精品久久久 | 国产成人高清视频免费播放 | 欧美成人伊人十综合色 | 色婷婷久久综合中文网站 | 另类色视频 | 国产精品久久久亚洲动漫 | 神马影院午夜剧场 | 国产精品九九久久一区hh | 日韩精品久久久毛片一区二区 | 91精品久久久久久久久久 | 欧美中文字幕在线观看 | 成人免费毛片网站 | 日韩精品a | 日韩成人精品 | 国产在线精品二区赵丽颖 | 综合久久色| 久久久精品国产 | 不卡的在线视频免费观看 | 18在线观看|