摘自:百度百科設計模式
迪米特法則(Law of Demeter)又叫做最少知識原則(Least Knowledge Principle 簡寫LKP),就是說一個對象應當對其餘對象有儘量少的瞭解,不和陌生人說話。英文簡寫爲: LoD.spa
摘自:百度百科設計
迪米特法則能夠簡單說成:talk only to your immediate friends。 對於OOD來講,又被解釋爲下面幾種方式:一個軟件實體應當儘量少的與其餘實體發生相互做用。每個軟件單位對其餘的單位都只有最少的知識,並且侷限於那些與本單位密切相關的軟件單位。對象
迪米特法則的初衷在於下降類之間的耦合。因爲每一個類儘可能減小對其餘類的依賴,所以,很容易使得系統的功能模塊功能獨立,相互之間不存在(或不多有)依賴關係。ip
迪米特法則不但願類之間創建直接的聯繫。若是真的有須要創建聯繫,也但願能經過它的友元類來轉達。所以,應用迪米特法則有可能形成的一個後果就是:系統中存在大量的中介類,這些類之因此存在徹底是爲了傳遞類之間的相互調用關係——這在必定程度上增長了系統的複雜度。ci
摘自:大話設計模式it
迪米特法則,若是兩個類沒必要彼此直接通向,那麼這兩個類就不該當發生直接的相互做用。若是其中一個類須要調用另外一個累哦的某一個方法的話,能夠經過第三者轉發這個調用。ast
迪米特法則首先強調的前提是在類的結構設計上,每個類都應當下降成員的訪問權限,也就是說,一個類包裝好本身的private狀態,不須要讓別的類知道的字段或行爲就不要公開。百度
面向對象的設計原則和麪向對象的三大特性本就不是矛盾的。迪米特法則其根本思想,是強調了類之間的鬆耦合。類之間的耦合越弱,越有利於複用,一個處在弱耦合的類被修改,不會對有關係的類形成搏擊,也就是說,信息的隱藏促進了軟件的複用。
減小對象之間的耦合性
摘自大話設計模式: