迪米特法則也叫最少知道原則,意思是一個對象應該對其他對象保持最少的瞭解,儘量降低類與類之間的耦合度。
舉個例子,某個班的班主任想要同學們的作業完成情況,班主任要找到班長去統計,班長再把統計結果告訴班主任。
public class HomeWork {
}
public class Monitor {
public void checkHomeWork() {
List<HomeWork> homeWorks = new ArrayList<>();
homeWorks.add(new HomeWork());
System.out.println("已完成作業:" + homeWorks.size());
}
}
public class Teacher {
public void commandCheck(Monitor monitor) {
monitor.checkHomeWork();
}
}
public class Test {
public static void main(String[] args) {
Teacher teacher = new Teacher();
teacher.commandCheck(new Monitor());
}
}
班主任只是想知道結果,所以統計行爲的細節都由班長執行,班主任無需知道。利用迪米特法則我們可以寫出更加清晰,低耦合度的代碼。