迪公尺特法則 Law of Demeter)

2021-06-11 01:40:44 字數 812 閱讀 7063

迪公尺特法則(law of demeter, lod)又稱為最少知識原則(least knowledge principle, lkp),它有多種定義方法,其中幾種典型定義如下:

(1)不要和「陌生人」說話。

(2)只與你的直接朋友通訊。

(3)每乙個軟體單位對其他的單位都只有最少的知識,而且侷限於那些與本單位密切相關的軟體單位。

(4)乙個物件應當對其他物件有盡可能少的了解。

迪公尺特法則要點:

迪公尺特法則說的是乙個物件應該對其它物件有盡可能少的了解。即只與你直接的朋友通訊,不要跟陌生人說話。如果需要和陌生人通話,而你的朋友與陌生人是朋友,那麼可以將你對陌生人的呼叫由你的朋友**,使得某人只知道朋友,不知道陌生人。換言之,某人會認為他所呼叫的是朋友的方法。

以下條件稱為朋友的條件: 1)

當前物件本身 2)

以參量的形式傳入到當前物件方法中的物件 3)

當前物件的例項變數直接引用的物件 4)

當前物件的例項變數如果是乙個聚集,那麼聚集中的元素也都是朋友 5)

當前物件所建立的物件

迪公尺特法則的主要用意是控制資訊的過載,在將其運用到系統設計中應注意以下幾點: 1)

在類的劃分上,應當建立有弱耦合的類。類之間的耦合越弱,就越有利於復用 2)

在類的結構設計上,每乙個類都應當盡量降低成員的訪問許可權。乙個類不應當public自己的屬性,而應當提供取值和賦值的方法讓外界間接訪問自己的屬性 3)

在類的設計上,只要有可能,乙個類應當設計成不變類

4)  在對其它物件的引用上,乙個類對其它物件的引用應該降到最低

迪公尺特法則

定義 乙個物件應該對其他物件保持最少的了解。問題由來 類與類之間的關係越密切,耦合度越大,當乙個類發生改變時,對另乙個類的影響也越大。解決方案 盡量降低類與類之間的耦合。自從我們接觸程式設計開始,就知道了軟體程式設計的總的原則 低耦合,高內聚。無論是面向過程程式設計還是物件導向程式設計,只有使各個模...

迪公尺特法則

自從我們接觸程式設計開始,就知道了軟體程式設計的總的原則 低耦合,高內聚。無論是面向過程程式設計還是物件導向程式設計,只有使各個模組之間的耦合盡量的低,才能提高 的復用率。怎麼樣程式設計才能做到低耦合呢?那正是迪公尺特法則要去完成的。類與類之間的關係越密切,耦合度越大,當乙個類發生改變時,對另乙個類...

迪公尺特法則

迪公尺特法則又稱為最少知識法則,即 如果兩個類不必彼此直接通訊,那麼這兩個類就不應該發生直接的相互作用。如果其中乙個類需要呼叫另乙個類的某乙個方法的話,可以通過第三方來 這個呼叫。迪公尺特法則特別強調的是類之間的松耦合,即在類的結構設計上,每乙個類都應該盡量降低成員的訪問許可權。我們在進行程式設計時...