設計模式 迪公尺特法則 Lod LKP

2021-07-03 15:44:05 字數 793 閱讀 6081

迪公尺特法則:(law of demeter, lod),也稱最少知識原則(least knowledge principle, lkp)

理解:

如果兩個類不必彼此直接通訊,那麼這兩個類就不應該發生直接的相互作用。如果其中乙個類需要呼叫另乙個類的某乙個放發的話,可以通過第三者**這個呼叫。

每個物件都必然會與其他物件有耦合關係,兩個物件之間的耦合就成為朋友關係,這種關係的型別有很多,如組合、聚合、依賴等。

朋友類的定義:出現在成員變數、方法的輸入輸出引數中的類。   而方法體類內部的類不能算。

如果朋友把太多的方法或屬性暴露給你,則過於親密,耦合關係變得異常牢固,而且,修改時涉及的面也就越大,變更引起的風險就越大。因此,要適時反覆衡量:是否可以減少public方法和屬性,改為private、package-private、protected等訪問許可權,及是否可以加上final關鍵字。

看個示例:

下面的**違反了設計原則:

public class teacher 

groupleader.countgirls(listgirls);

}}

乙個類應該紙盒自己有直接關係的類交流。

正確的方法如下:

public class teacher  }

public class groupleader

public void countgirls()

}

設計模式 迪公尺特法則 Lod LKP

迪公尺特法則 law of demeter,lod 也稱最少知識原則 least knowledge principle,lkp 理解 假設兩個類不必彼此直接通訊,那麼這兩個類就不應該發生直接的相互作用。假設當中乙個類須要呼叫還有乙個類的某乙個放發的話,能夠通過第三者 這個呼叫。每乙個物件都必定會與...

設計模式 迪公尺特法則

一,概述 迪公尺特法則 law of demeter 又叫作最少知識原則 least knowledge principle 簡寫lkp 就是說乙個物件應當對其他物件有盡可能少的了解,不和陌生人說話。英文簡寫為 lod 如果兩個類不必彼此直接通訊,那麼這兩個類就不應當發生直接相互作用。如果其中乙個類...

設計模式 迪公尺特法則

設計模式 迪公尺特法則 only talk to your immediate friends 只與直接的朋友通訊。即每個物件都有耦合關係,物件之間有耦合。定義老師類 public class teacher 然後進行查詢任務 groupleader.countgirls listgirls 然後定...