設計模式六大原則--迪米特法制(LoD,LKP)


 迪米特法則(Law of Demeter)又叫作最少知識原則(Least Knowledge Principle 簡寫LKP),就是說一個對象應當對其他對象有儘可能少的瞭解,不和陌生人說話。

 迪米特法則的初衷在於降低類之間的耦合。由於每個類儘量減少對其他類的依賴,因此,很容易使得系統的功能模塊功能獨立,相互之間不存在(或很少有)依賴關係。  

    迪米特法則可以簡單說成:talk only to your immediate friends。

        朋友類的定義是這樣的:出現在成員變量、方法的輸入輸出參數中的類稱爲成員朋友類,而出現在方法體內部的類不屬於朋友類。

    迪米特法則不希望類直接建立直接的接觸。如果真的有需要建立聯繫,也希望能通過它的友元類來轉達。


狹義的迪米特法則的缺點
    遵循狹義的迪米特法則會產生一個明顯的缺點:會在系統裏造出大量的小方法,散落在系統的各個角落。這些方法僅僅是傳遞間接的調用,因此與系統的商務邏輯無關。當設計師試圖從一張類圖看出總體的架構時,這些小的方法會造成迷惑和困擾。
    遵循類之間的迪米特法則會使一個系統的局部設計簡化,因爲每一個局部都不會和遠距離的對象有直接的關聯。但是,這也會造成系統的不同模塊之間的通信效率降低,也會使系統的不同模塊之間不容易協調。
    與依賴倒轉原則互補使用

    門面模式和調停者模式實際上就是迪米特法則的應用。  


廣義的迪米特法則在類的設計上的體現:  

    優先考慮將一個類設置成不變類。  

    儘量降低一個類的訪問權限。  

    謹慎使用Serializable。  

    儘量降低成員的訪問權限。

發佈了19 篇原創文章 · 獲贊 23 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章