迪公尺特法則(law of demeter, lod):乙個軟體實體應當盡可能少地與其他實體發生相互作用。
如果乙個系統符合迪公尺特法則,那麼當其中某乙個模組發生修改時,就會盡量少地影響其他模組,擴充套件會相對容易,這是對軟體實體之間通訊的限制,迪公尺特法則要求限制軟體實體之間通訊的寬度和深度。迪公尺特法則可降低系統的耦合度,使類與類之間保持鬆散的耦合關係。
迪公尺特法則還有幾種定義形式,包括:不要和「陌生人」說話、只與你的直接朋友通訊等,在迪公尺特法則中,對於乙個物件,其朋友包括以下幾類:
任何乙個物件,如果滿足上面的條件之一,就是當前物件的「朋友」,否則就是「陌生人」。在應用迪公尺特法則時,乙個物件只能與直接朋友發生互動,不要與「陌生人」發生直接互動,這樣做可以降低系統的耦合度,乙個物件的改變不會給太多其他物件帶來影響。
迪公尺特法則要求我們在設計系統時,應該儘量減少物件之間的互動,如果兩個物件之間不必彼此直接通訊,那麼這兩個物件就不應當發生任何直接的相互作用,如果其中的乙個物件需要呼叫另乙個物件的某乙個方法的話,可以通過第三者**這個呼叫。簡言之,就是通過引入乙個合理的第三者來降低現有物件之間的耦合度。
在將迪公尺特法則運用到系統設計中時,要注意下面的幾點:在類的劃分上,應當盡量建立松耦合的類,類之間的耦合度越低,就越有利於復用,乙個處在松耦合中的類一旦被修改,不會對關聯的類造成太大波及;在類的結構設計上,每乙個類都應當盡量降低其成員變數和成員函式的訪問許可權;在類的設計上,只要有可能,乙個型別應當設計成不變類;在對其他類的引用上,乙個物件對其他物件的引用應當降到最低。
物件導向設計原則之迪公尺特法則
迪公尺特法則來自於1987年美國東北大學 northeastern university 乙個名為 demeter 的研究專案。迪公尺特法則又稱為最少知識原則 leastknowledge principle,lkp 其定義如下 迪公尺特法則 law of demeter,lod 乙個軟體實體應當盡...
物件導向設計原則之迪公尺特法則
迪公尺特法則來自於1987年美國東北大學 northeastern university 乙個名為 demeter 的研究專案。迪公尺特法則又稱為最少知識原則 leastknowledge principle,lkp 其定義如下 迪公尺特法則 law of demeter,lod 乙個軟體實體應當盡...
物件導向設計原則之迪公尺特法則
迪公尺特法則來自於1987年美國東北大學 northeastern university 乙個名為 demeter 的研究專案。迪公尺特法則又稱為最少知識原則 leastknowledge principle,lkp 其定義如下 迪公尺特法則 law of demeter,lod 乙個軟體實體應當盡...