迪米特法则也叫最少知道原则,意思是一个对象应该对其他对象保持最少的了解,尽量降低类与类之间的耦合度。
举个例子,某个班的班主任想要同学们的作业完成情况,班主任要找到班长去统计,班长再把统计结果告诉班主任。
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());
}
}
班主任只是想知道结果,所以统计行为的细节都由班长执行,班主任无需知道。利用迪米特法则我们可以写出更加清晰,低耦合度的代码。