中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

java設(shè)計(jì)模式中有哪些原則

java設(shè)計(jì)模式中有哪些原則?針對(duì)這個(gè)問(wèn)題,這篇文章給出了相對(duì)應(yīng)的分析和解答,希望能幫助更多想解決這個(gè)問(wèn)題的朋友找到更加簡(jiǎn)單易行的辦法。

成都創(chuàng)新互聯(lián)公司是專(zhuān)業(yè)的忻城網(wǎng)站建設(shè)公司,忻城接單;提供做網(wǎng)站、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行忻城網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

1)單一職責(zé)原則

降低類(lèi)的復(fù)雜度,一個(gè)類(lèi)只負(fù)責(zé)一項(xiàng)職責(zé),提高類(lèi)的可讀性,可維護(hù)性,降低類(lèi)變更引起的風(fēng)險(xiǎn),通常情況下,我們應(yīng)當(dāng)遵守單一職責(zé)原則,只有類(lèi)邏輯足夠簡(jiǎn)單,可以違反單一職責(zé)原則,若類(lèi)的方法數(shù)量比較少,可以在方法級(jí)別保持單一原則。

2)接口隔離原則

客戶(hù)端不應(yīng)該依賴(lài)它不需要的接口;一個(gè)類(lèi)對(duì)另一個(gè)類(lèi)的依賴(lài)應(yīng)該建立在最小的接口上。

3)依賴(lài)倒轉(zhuǎn)原則(Dependence Inversion Principle, DIP)

1、高層模塊不應(yīng)該依賴(lài)低層模塊,兩者都應(yīng)該依賴(lài)其抽象

2、抽象不應(yīng)該依賴(lài)細(xì)節(jié)

3、細(xì)節(jié)應(yīng)該依賴(lài)抽象

4、每一個(gè)邏輯的實(shí)現(xiàn)都是由原子邏輯組成的,不可分割的原子邏輯就是低層模塊(一般是接口,抽象類(lèi)),原子邏輯的組裝就是高層模塊。在Java語(yǔ)言中,抽象就是指接口和或抽象類(lèi),兩者都不能被直接實(shí)例化。細(xì)節(jié)就是實(shí)現(xiàn)類(lèi),實(shí)現(xiàn)接口或繼承抽象類(lèi)而產(chǎn)生的類(lèi)就是細(xì)節(jié),可以被直接實(shí)例化。

4)里氏替換原則

如果對(duì)每一個(gè)類(lèi)型為S的對(duì)象o1,都有類(lèi)型為T(mén)的對(duì)象o2,使得以T定義的所有程序P在所有的對(duì)象o1都代換成o2 時(shí),程序P的行為沒(méi)有發(fā)生變化,那么類(lèi)型 S 是類(lèi)型 T 的子類(lèi)型。

所有引用基類(lèi)的地方必須能透明地使用其子類(lèi)的對(duì)象。

第二個(gè)定義是最清晰明確的,通俗點(diǎn)講,只要父類(lèi)能出現(xiàn)的地方子類(lèi)就可以出現(xiàn),而且替換為子類(lèi)也不會(huì) 產(chǎn)生任何錯(cuò)誤或異常,使用者可能根本就不需要知道是父類(lèi)還是子類(lèi)。但是,反過(guò)來(lái)就不行了,有子類(lèi)出現(xiàn)的地方,父類(lèi)未必就能適應(yīng)。

在使用繼承時(shí),盡量不要重寫(xiě)父類(lèi)方法。

5)開(kāi)閉原則(ocp)

一個(gè)軟件實(shí)體如類(lèi),模塊和函數(shù)應(yīng)該對(duì)擴(kuò)展開(kāi)放,對(duì)修改關(guān)閉。

軟件實(shí)現(xiàn)應(yīng)該對(duì)擴(kuò)展開(kāi)放,對(duì)修改關(guān)閉,其含義是說(shuō)一個(gè)軟件實(shí)體應(yīng)該通過(guò)擴(kuò)展來(lái)實(shí)現(xiàn)變化,而不是通過(guò)修改已有的代碼來(lái)實(shí)現(xiàn)變化的。

6)迪米特法則

也被稱(chēng)為最少知識(shí)原則(Least knowledge Principle,LKP) 也可以表述為 一個(gè)對(duì)象應(yīng)該對(duì)其他對(duì)象有最少的了解,即一個(gè)類(lèi)應(yīng)該對(duì)自己需要耦合或調(diào)用的類(lèi)知道的最少。

1、只和朋友交流(Only talk to your immediate friends) 在類(lèi)之間,什么樣的類(lèi)算作朋友呢? 出現(xiàn)在成員變量、方法的輸入輸出參數(shù)中的類(lèi)稱(chēng)為成員朋友類(lèi)。而出現(xiàn)在方法體內(nèi)部的類(lèi)不屬于朋友類(lèi)。

2、朋友之間也是有距離的 不能暴露太多,否則二次修改的時(shí)候,會(huì)讓影響的范圍增大。 這也要求類(lèi)間public方法不能肆無(wú)忌憚的暴露

3、是自己的就是自己的 如果一個(gè)方法在類(lèi)間關(guān)系中,放在自身類(lèi)中既不增加類(lèi)間關(guān)系,也對(duì)本類(lèi)不產(chǎn)生負(fù)面影響就放置在自身類(lèi)中。

4、謹(jǐn)慎進(jìn)行序列化操作,針對(duì)RMI(Remote Method Invocation)

最佳實(shí)踐: 迪米特法則的核心在于類(lèi)間的解耦,只有弱耦合之后類(lèi)的復(fù)用率才會(huì)提高。其要求的結(jié)果就是產(chǎn)生大量的中轉(zhuǎn)或跳轉(zhuǎn)類(lèi)。

7)合成復(fù)用原則

合成/聚合復(fù)用原則是在一個(gè)新的對(duì)象里面使用一些已有的對(duì)象,使之成為新對(duì)象的一部分;新的對(duì)象通過(guò)向這些對(duì)象的委派達(dá)到復(fù)用已有功能的目的。

簡(jiǎn)述為:要盡量使用合成/聚合,盡量不要使用繼承。

關(guān)于java設(shè)計(jì)模式中的原則就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

網(wǎng)頁(yè)標(biāo)題:java設(shè)計(jì)模式中有哪些原則
標(biāo)題網(wǎng)址:http://www.rwnh.cn/article40/jcjgeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站維護(hù)、網(wǎng)站內(nèi)鏈、微信公眾號(hào)、服務(wù)器托管網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
延吉市| 青岛市| 绥德县| 绥化市| 宜阳县| 亚东县| 汉沽区| 鲜城| 三原县| 新沂市| 巴东县| 沧州市| 乐都县| 汉沽区| 彰化市| 通海县| 南开区| 天柱县| 中山市| 双峰县| 武夷山市| 文水县| 金湖县| 兴宁市| 天柱县| 基隆市| 龙江县| 万安县| 海淀区| 南雄市| 农安县| 长阳| 长宁县| 分宜县| 民权县| 朝阳县| 江口县| 合肥市| 资兴市| 宁安市| 剑川县|