赞
踩
老师想从学生那里知道假期一共留了几门作业,所以Teacher–>StudentA 是直接关系,老师调用学生,StudentA–>homework 是直接关系,但老师和课程Teacher–>homework 没有直接关系,所以依据迪米特最少知道原则,Teacher类中不能出现homework类的信息,错误和正确示例代码如下:
Teacher 类中直接注入了与之不相干的Homework类
public class Homework { } public class Teacher { public void checkHomework(StudentA studentA){ List<Homework> arrayList = new ArrayList<>(); for (int i = 0; i < 5; i++) { arrayList.add(new Homework()); } studentA.checkHomeworkSum(arrayList); } } public class StudentA { public void checkHomeworkSum(List<Homework> homework){ System.out.println("假期一共留了多少门作业:" + homework.size() + "门"); } } public class DemeterTest { public static void main(String[] args) { Teacher teacher = new Teacher(); StudentA studentA = new StudentA(); teacher.checkHomework(studentA); } }
public class Homework { } public class Teacher { public void checkHomework(StudentA studentA){ studentA.checkHomeworkSum(); } } public class StudentA { private List<Homework> arrayList = new ArrayList<>(); public void checkHomeworkSum(){ for (int i = 0; i < 5; i++) { arrayList.add(new Homework()); } System.out.println("假期一共留了多少门作业:" + arrayList.size() + "门"); } } public class DemeterTest { public static void main(String[] args) { Teacher teacher = new Teacher(); StudentA studentA = new StudentA(); teacher.checkHomework(studentA); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。