迪公尺特原則(law of demeter , lod)是指乙個物件應該對其它物件保持最少的了解,又叫最少知道原則(least knowledge principle,lkp),盡量降低類與類之間的耦合度。迪公尺特原則主要強度,只和朋友交流,不和陌生人說話。出現在成員變數、方法的輸入、輸出引數中的類都可以稱為成員朋友類,而出現在方法內部的類不屬於朋友類。
1.比如說,現在有乙個許可權系統,boss需要檢視目前發布到線上的課程數量。此時,boss 要找到 teamleader 去進行統計,teamleader 把統計結果告訴boss. 上**:
course 類
public class course{}
teamleader 類
public class teamleader
}boss 類
public class boss
teamleader.checknumberofcourses(courselist);}}
2.測試一下
public static void main(string args)
根據迪公尺特原則,從上面**可以看出,boss 類既用了 teamleader 類,又用了 course 類,但是 boss 類是不需要直接與 course 類進行交流的,只有teamleader 類在進行統計時需要引用 course 物件。
3.來改造以下**
teamleader 類
public class teamleader
system.out.println("目前已發布的課程量: "+ courselist.size());}}
boss 類
public class boss
}通過改造之後的**,我們可以看出 boss 只需要引用 teamleader 的物件就行,並且避免與 course 類的耦合。
設計模式 迪公尺特原則 開閉原則
乙個物件應該對其他物件有最少的了解。通俗地講,乙個類應該對自己需要耦合或呼叫的類知道得最少,你 被耦合或呼叫的類 的內部是如何複雜都和我沒關係,那是你的事情,我就知道你提供的這麼多public方法,我就呼叫這麼多,其他的我一概不關心。每個物件都必然會與其他物件有耦合關係,兩個物件之間的耦合就成為朋友...
設計模式筆記 迪公尺特原則
迪公尺特法則還有乙個英文解釋是only talk to your immedate friends,意思就是 只與直接的朋友通訊,什麼叫做直接的朋友呢?每個物件都必然會與其他物件有耦合關係,兩個物件之間的耦合就成為朋友關係,這種關係的型別有很多,如組合,聚合,依賴等。舉例如下 案例 找中介租房 pu...
設計原則之迪公尺特法則
設計原則之迪公尺特法則 設計原則之迪公尺特法則 如果兩個類彼此不必直接通訊,那麼著兩個類就不應當發生直接的相互作用.如果其中乙個類需要呼叫另乙個類的某乙個方法的話,可以通過第三方 這個呼叫.舉個列子來說,你要it部門的人修理機器,打 的時候問 請問是it部門嗎?這樣對方無論是it部門經理還是it部門...