设计原则之迪米特法则详解
设计原则之迪米特法则详解
一、迪米特法则定义
一个对象应当对其它对象有尽可能少的了解,也被成为最少知道原则。意思就是一个类中只与与它有直接关联的类联系,出现在这个类的成员变量、方法的输入,方法参数的类被成为朋友类,其他无直接关联的类尽量少知道这些类。所以迪米特法则强调只和最亲的朋友类有联系,对其他类不交流
二、举例理解
设计原则之迪米特法则详解
一、迪米特法则定义
- 一个对象应当对其它对象有尽可能少的了解,也被成为最少知道原则。
- 意思就是一个类中只与与它有直接关联的类联系,出现在这个类的成员变量、方法的输入,方法参数的类被成为朋友类,其他无直接关联的类尽量少知道这些类。
- 所以迪米特法则强调只和最亲的朋友类有联系,对其他类不交流
二、举例理解
老师想从学生那里知道假期一共留了几门作业,所以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());}(arrayList);}
}public class StudentA {public void checkHomeworkSum(List<Homework> homework){println(假期一共留了多少门作业: homework.size() 门);}
}public class DemeterTest {public static void main(String[] args) {Teacher teacher = new Teacher();StudentA studentA = new StudentA();(studentA);}
}
遵循法则的代码:
public class Homework {
}public class Teacher {public void checkHomework(StudentA studentA){();}
}public class StudentA {private List<Homework> arrayList = new ArrayList<>();public void checkHomeworkSum(){for (int i = 0; i < 5; i) {arrayList.add(new Homework());}println(假期一共留了多少门作业: arrayList.size() 门);}
}public class DemeterTest {public static void main(String[] args) {Teacher teacher = new Teacher();StudentA studentA = new StudentA();(studentA);}
}
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上传时间: 2023-12-27 15:07:17
推荐阅读
留言与评论(共有 6 条评论) |
本站网友 苹果核战记2 | 3分钟前 发表 |
方法的输入,方法参数的类被成为朋友类,其他无直接关联的类尽量少知道这些类 | |
本站网友 无名战士之甲 | 8分钟前 发表 |
意思就是一个类中只与与它有直接关联的类联系,出现在这个类的成员变量 | |
本站网友 笨贼神狗 | 23分钟前 发表 |
举例理解 老师想从学生那里知道假期一共留了几门作业,所以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());}(arrayList);} }public class StudentA {public void checkHomeworkSum(List<Homework> homework){println(假期一共留了多少门作业: homework.size() 门);} }public class DemeterTest {public static void main(String[] args) {Teacher teacher = new Teacher();StudentA studentA = new StudentA();(studentA);} } 遵循法则的代码: public class Homework { }public class Teacher {public void checkHomework(StudentA studentA){();} }public class StudentA {private List<Homework> arrayList = new ArrayList<>();public void checkHomeworkSum(){for (int i = 0; i < 5; i) {arrayList.add(new Homework());}println(假期一共留了多少门作业: arrayList.size() 门);} }public class DemeterTest {public static void main(String[] args) {Teacher teacher = new Teacher();StudentA studentA = new StudentA();(studentA);} } | |
本站网友 阿托品滴眼液 | 10分钟前 发表 |
意思就是一个类中只与与它有直接关联的类联系,出现在这个类的成员变量 | |
本站网友 dme | 21分钟前 发表 |
设计原则之迪米特法则详解 一 |