91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java設計模式中有哪些原則

發布時間:2020-06-24 11:21:30 來源:億速云 閱讀:116 作者:Leah 欄目:編程語言

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

1)單一職責原則

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

2)接口隔離原則

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

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

1、高層模塊不應該依賴低層模塊,兩者都應該依賴其抽象

2、抽象不應該依賴細節

3、細節應該依賴抽象

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

4)里氏替換原則

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

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

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

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

5)開閉原則(ocp)

一個軟件實體如類,模塊和函數應該對擴展開放,對修改關閉。

軟件實現應該對擴展開放,對修改關閉,其含義是說一個軟件實體應該通過擴展來實現變化,而不是通過修改已有的代碼來實現變化的。

6)迪米特法則

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

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

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

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

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

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

7)合成復用原則

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

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

呼和浩特市| 大竹县| 达州市| 轮台县| 鹿泉市| 阳东县| 伊吾县| 托克逊县| 万荣县| 海淀区| 台南县| 会东县| 墨竹工卡县| 德阳市| 元氏县| 宜良县| 汤原县| 时尚| 连城县| 临江市| 马龙县| 惠安县| 贵港市| 湾仔区| 双城市| 烟台市| 青神县| 丁青县| 灵寿县| 沧源| 丰镇市| 清河县| 和田市| 台中县| 湄潭县| 海口市| 德兴市| 泰兴市| 永宁县| 布拖县| 额尔古纳市|