迪公尺特法則(law of demeter, lod)也成為最少知識原則(least knowledge principle, lkp): 乙個物件應該對其他物件有最少的了解。即乙個類應該對自己需要耦合或呼叫的類知道的最少,你(被耦合或被呼叫的類)的內部是如何負責和我對沒有關係,我只需知道你提供的這麼多public
方法,我就呼叫這麼多,其他的一概不關心。
迪公尺特法則對類的低耦合提出了明確的要求,其包含以下4層含義
迪公尺特法則還有乙個英文的解釋: only talk to your immediate frieds.(只與直接的朋友交流)
什麼是直接的朋友?每個物件都必然會與其他物件有耦合關係,兩個物件之間的耦合就成為朋友關係,這種關係的型別有很多,例如組合、聚合、依賴等
出現在成員變數、方法的輸入輸出引數中的類成為成員朋友類(直接朋友),而出現在方法體內部的類不屬於朋友類。
在設計的時候需要反覆衡量:是否可以再減少public
方法和屬性,時候可以修改為private
、package
、protected
等訪問許可權,是否可以加上final
關鍵字等。
在實際應用中經常會出現這樣的乙個方法: 放在奔雷也可以,放在其他類中也沒錯,那怎麼去衡量呢? 可以堅持這樣的乙個原則: 如果乙個方法放在本類中,既不增加類間關係,也對本類不產生負面影響,那就放置在本類中。
迪公尺特法則
定義 乙個物件應該對其他物件保持最少的了解。問題由來 類與類之間的關係越密切,耦合度越大,當乙個類發生改變時,對另乙個類的影響也越大。解決方案 盡量降低類與類之間的耦合。自從我們接觸程式設計開始,就知道了軟體程式設計的總的原則 低耦合,高內聚。無論是面向過程程式設計還是物件導向程式設計,只有使各個模...
迪公尺特法則
自從我們接觸程式設計開始,就知道了軟體程式設計的總的原則 低耦合,高內聚。無論是面向過程程式設計還是物件導向程式設計,只有使各個模組之間的耦合盡量的低,才能提高 的復用率。怎麼樣程式設計才能做到低耦合呢?那正是迪公尺特法則要去完成的。類與類之間的關係越密切,耦合度越大,當乙個類發生改變時,對另乙個類...
迪公尺特法則
迪公尺特法則又稱為最少知識法則,即 如果兩個類不必彼此直接通訊,那麼這兩個類就不應該發生直接的相互作用。如果其中乙個類需要呼叫另乙個類的某乙個方法的話,可以通過第三方來 這個呼叫。迪公尺特法則特別強調的是類之間的松耦合,即在類的結構設計上,每乙個類都應該盡量降低成員的訪問許可權。我們在進行程式設計時...