設計模式 迪公尺特法則
only talk to your immediate friends 只與直接的朋友通訊。即每個物件都有耦合關係,物件之間有耦合。
定義老師類
public class teacher
// 然後進行查詢任務
groupleader.countgirls(listgirls);
}}
然後定義體育文員,清查學生
public class groupleader
}
定義學生類
public class girl
最後定義場景
public class client
}
上方**的問題,teacher類有乙個朋友類,即groupleader,並且girl類出現在commond方法體內,不屬於朋友類。
朋友類:出現在成員變數,方法的輸入引數中的類稱為成員朋友類,出現在方法內部的類不屬於朋友類,迪公尺緹法則 乙個類,只和朋友交流。不能和非朋友交流。但是剛剛定義的commond於girl類有交流,即宣告了list陣列,即與陌生的girl類有交流
修改如下
修改後的老師類
public class teacher
}
體育委員
public class groupleader
// 進行學生數量的清理
public void countgirls()
}
定義場景
public class client
teacher teacher = new teacher();
// 發布命令
teacher.commond(new groupleader(listgirls))
}}
總結, 類與類之間的關係是建立在類之間,乙個方法中不要引入乙個類中不存在的物件。
乙個軟體安裝的過程
first定義第一步,second定義第二步,third定義第三 步。
public class wizard
// 第二步
public int third()
// 第三步
public int third()
}
最後定義installsoftware
public class installsoftware
}
最後定義場景
public class client
}
根據迪公尺特法則,兩個類之間知道的越少越好,wizard類的太多方法被installsoftware使用,兩者的關係過於親密,修改後如下
// 對外只提供了乙個installwizard方法
public void installwizard()
}
public class insatllsoftware
}
場景類
public class client
}
如果乙個方法放在本類中,即不增加類間關係,也不會對本類不產生負面影響,那就放置在本類中。 設計模式 迪公尺特法則
一,概述 迪公尺特法則 law of demeter 又叫作最少知識原則 least knowledge principle 簡寫lkp 就是說乙個物件應當對其他物件有盡可能少的了解,不和陌生人說話。英文簡寫為 lod 如果兩個類不必彼此直接通訊,那麼這兩個類就不應當發生直接相互作用。如果其中乙個類...
設計模式 迪公尺特法則 Lod LKP
迪公尺特法則 law of demeter,lod 也稱最少知識原則 least knowledge principle,lkp 理解 如果兩個類不必彼此直接通訊,那麼這兩個類就不應該發生直接的相互作用。如果其中乙個類需要呼叫另乙個類的某乙個放發的話,可以通過第三者 這個呼叫。每個物件都必然會與其他...
設計模式系列 迪公尺特法則
問題由來 類與類之間的關係越密切,耦合度越大,當乙個類發生改變時,對另乙個類的影響也越大。解決方案 盡量降低類與類之間的耦合。自從我們接觸程式設計開始,就知道了軟體程式設計的總的原則 低耦合,高內聚。無論是面向過程程式設計還是物件導向程式設計,只有使各個模組之間的耦合盡量的低,才能提高 的復用率。低...