您现在的位置是:首页 > 数码 > 

设计原则之迪米特法则详解

2025-07-28 06:14:13
设计原则之迪米特法则详解 一、迪米特法则定义 一个对象应当对其它对象有尽可能少的了解,也被成为最少知道原则。意思就是一个类中只与与它有直接关联的类联系,出现在这个类的成员变量、方法的输入,方法参数的类被成为朋友类,其他无直接关联的类尽量少知道这些类。所以迪米特法则强调只和最亲的朋友类有联系,对其他类不交流 二、举例理解

设计原则之迪米特法则详解

一、迪米特法则定义

  • 一个对象应当对其它对象有尽可能少的了解,也被成为最少知道原则。
  • 意思就是一个类中只与与它有直接关联的类联系,出现在这个类的成员变量、方法的输入,方法参数的类被成为朋友类,其他无直接关联的类尽量少知道这些类。
  • 所以迪米特法则强调只和最亲的朋友类有联系,对其他类不交流

二、举例理解

老师想从学生那里知道假期一共留了几门作业,所以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组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/shuma/767882.html

相关标签:无
上传时间: 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分钟前 发表
设计原则之迪米特法则详解 一