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

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

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

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

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

2)接口隔離原則

客戶端不應(yīng)該依賴它不需要的接口;一個類對另一個類的依賴應(yīng)該建立在最小的接口上。

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

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

2、抽象不應(yīng)該依賴細節(jié)

3、細節(jié)應(yīng)該依賴抽象

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

4)里氏替換原則

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

所有引用基類的地方必須能透明地使用其子類的對象。

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

在使用繼承時,盡量不要重寫父類方法。

5)開閉原則(ocp)

一個軟件實體如類,模塊和函數(shù)應(yīng)該對擴展開放,對修改關(guān)閉。

軟件實現(xiàn)應(yīng)該對擴展開放,對修改關(guān)閉,其含義是說一個軟件實體應(yīng)該通過擴展來實現(xiàn)變化,而不是通過修改已有的代碼來實現(xiàn)變化的。

6)迪米特法則

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

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

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

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

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

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

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

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

簡述為:要盡量使用合成/聚合,盡量不要使用繼承。

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

網(wǎng)頁標題:java設(shè)計模式中有哪些原則
標題網(wǎng)址:http://muchs.cn/article40/jcjgeo.html

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

廣告

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

手機網(wǎng)站建設(shè)