java知識(shí)還是很廣的,大家要學(xué)習(xí)好java就要不斷的積累,比如java設(shè)計(jì)模式相關(guān)內(nèi)容,這個(gè)知識(shí)大家也是要清楚了解的,那么今天我們就給大家分享一些這方面的內(nèi)容。
總體說(shuō)設(shè)計(jì)模式分為三大類(lèi):
創(chuàng)建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結(jié)構(gòu)型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責(zé)任鏈模式、命令模式、備忘錄模式、狀態(tài)模式、訪(fǎng)問(wèn)者模式、中介者模式、解釋器模式。
java設(shè)計(jì)模式的原則是什么?
一、單一職責(zé)原則
單一職責(zé)原則:就一個(gè)類(lèi)而言,應(yīng)該僅有一個(gè)引起它變化的原因。通俗來(lái)說(shuō),就是互相不相關(guān)的屬性和方法不要放在一個(gè)類(lèi)中,就好比之前簡(jiǎn)單工廠模式中介紹的那樣,客戶(hù)端(Customer)應(yīng)該與工廠(Factory)建立成兩個(gè)類(lèi),當(dāng)客戶(hù)想要工廠中的另一種產(chǎn)品時(shí),只需要修改客戶(hù)端,再或者,工廠想要生產(chǎn)新產(chǎn)品,就只需在工廠類(lèi)中添加,客戶(hù)端的類(lèi)而不需修改。這種只有一個(gè)動(dòng)機(jī)的去改變一個(gè)類(lèi)就是單一職責(zé)原則。
二、里氏替換原則
里氏替換原則:子類(lèi)型必須能夠替換掉它們的父類(lèi)型。其實(shí)就是在一個(gè)程序里,某一個(gè)地方使用的是一個(gè)父類(lèi),那么把父類(lèi)換成它的子類(lèi)同樣適用。另外子類(lèi)一般不該重寫(xiě)父類(lèi)的方法,因?yàn)楦割?lèi)的方法一般都是對(duì)外公布的接口,是具有不可變性的,你不該將一些不該變化的東西給修改掉。因?yàn)橐话阄覀冋J(rèn)為,父類(lèi)可以完成的事情,子類(lèi)也可以,如果重寫(xiě)父類(lèi)的方法并且因此出錯(cuò),將來(lái)如果用子類(lèi)替換父類(lèi)就會(huì)出現(xiàn)問(wèn)題。
三、依賴(lài)倒轉(zhuǎn)原則
1.高層模塊不應(yīng)該依賴(lài)低層模塊,兩個(gè)都應(yīng)該依賴(lài)抽象。
2.抽象不應(yīng)該依賴(lài)細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴(lài)抽象。
四、接口隔離原則
接口隔離原則:一個(gè)接口的行為應(yīng)該盡可能的小,其實(shí)就是接口里的方法一定要是所有實(shí)現(xiàn)這個(gè)接口的類(lèi)所能實(shí)現(xiàn)的。比如我們定義了一個(gè)Car接口,里面有兩個(gè)方法,駕駛和導(dǎo)航,但是實(shí)際情況是并不是所有的汽車(chē)都有導(dǎo)航的功能,這樣的話(huà)沒(méi)有導(dǎo)航功能的汽車(chē)實(shí)現(xiàn)這個(gè)接口的時(shí)候就只能把導(dǎo)航的這個(gè)方法空著,所以我們最好把navigation()這個(gè)方法從這個(gè)接口中去掉,另外單獨(dú)寫(xiě)一個(gè)接口。
五、迪米特法則
迪米特法則:如果兩個(gè)類(lèi)不比彼此直接通信,那么他們就不應(yīng)該直接發(fā)生作用,它強(qiáng)調(diào)的是松耦合,這樣的話(huà)一個(gè)類(lèi)修改也不會(huì)對(duì)其他類(lèi)有太大的影響。
六、開(kāi)放-封閉原則
開(kāi)放-封閉原則:就是類(lèi),函數(shù)等應(yīng)該是可以擴(kuò)展,但是不能修改。這個(gè)原則有兩個(gè)特征,對(duì)于擴(kuò)展是開(kāi)放的,對(duì)于更改是關(guān)閉的。但是事實(shí)情況是模塊不可能完全封閉的,總會(huì)有一些變化,但是這時(shí)就需要我們?nèi)ヮA(yù)測(cè)可能發(fā)生的變化,然后構(gòu)造抽象來(lái)隔離哪些變化,這樣的話(huà)以后更改起來(lái)就可以保持相對(duì)穩(wěn)定,使一個(gè)地方的變化對(duì)其他地方的影響盡可能的小。
關(guān)于java設(shè)計(jì)模式的相關(guān)內(nèi)容分享到這里就結(jié)束了,大家一定要了解這些知識(shí),增加java知識(shí),最后大家如果想要了解更多java初識(shí)知識(shí),敬請(qǐng)關(guān)注賦能網(wǎng)。
本文鏈接:
本文章“java有多少種設(shè)計(jì)模式?java設(shè)計(jì)模式的原則是什么?”已幫助 85 人
免責(zé)聲明:本信息由用戶(hù)發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識(shí)產(chǎn)權(quán)侵權(quán)的法律責(zé)任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開(kāi)班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢(xún)熱線(xiàn):4008-569-579