迪公尺特法則(law of demeter)又叫作最少知識原則,最少知道原則(the least knowledge principle),乙個物件應當對其他物件有盡可能少的了解,只和朋友通訊,不和陌生人說話。英文簡寫為: lod。
是「朋友」的情況
1)當前物件本身(this)
2)以參量形式傳入到當前物件方法中的物件
3)當前物件的例項變數直接引用的物件
4)當前物件的例項變數如果是乙個聚集(比如說list< node >),那麼聚集中的元素也都是朋友
5)當前物件所建立的物件
不是「朋友」的情況
classa}
classb}
public
class
notfriendstest
public
void
changefriends
(b b)
}
電腦關機
違反迪公尺特原則的寫法
public
class
person
}class
computer
public
void
closescreen()
public
void
outage()
}
正確寫法
public
class
person
}class
computer
private
void
closeprocess()
private
void
closescreen()
private
void
outage()
}
設計原則之迪公尺特法則
設計原則之迪公尺特法則 設計原則之迪公尺特法則 如果兩個類彼此不必直接通訊,那麼著兩個類就不應當發生直接的相互作用.如果其中乙個類需要呼叫另乙個類的某乙個方法的話,可以通過第三方 這個呼叫.舉個列子來說,你要it部門的人修理機器,打 的時候問 請問是it部門嗎?這樣對方無論是it部門經理還是it部門...
設計原則之迪公尺特法則
定義 乙個物件應該對其他物件有最少的了解。什麼是朋友?每個物件必然都會與其他物件有耦合關係,兩個物件之間的耦合就是朋友關係。這種關係的型別有組合,聚合,依賴。但是迪公尺特法則要求,只和直接朋友交流。例項 老師讓體育委員清點班上的女生的人數。public class teacher grouplead...
設計模式原則5 迪公尺特法則
迪公尺特法則 law of demeter,lod 也稱為最少知識原則 least knowledge principle,lkp 乙個物件應該對其他物件有最少的了解。通俗來講,乙個類應該對自己需要耦合或呼叫的類知道的最少。我就知道你提供的這麼多public方法,我就呼叫這麼多,其他的我一概不關心。...