理论性知识
定义
迪米特法则 ,Law of Demeter(LoD);
该原则是由lan holland(人名)在美国东北大学一个叫做迪米特的项目设计中提出的,所以被命名为迪米特法则。同时该原则要求一个对象应该对其他对象保持最少的了解。所以又被称为最少知道原则(Least Knowledge Principle, LKP)。
尽量降低类与类之间的耦合。
强调只和朋友说话,不和陌生人交流。
那么什么是朋友呢
出现在成员变量、方法的输入和输出参数中的类称为朋友类,出现在方法体中的类不属于朋友类。
优点
降低类之间的耦合。
代码实战demo
现在属于疫情防控的关键时期,人人都不可大意。现在镇长命令某村村长统计一下你们村有多少人已经做过核酸检测,有多少人未做核酸检测。
非迪米特法则实现
首先定义村民类,如下图。
然后定义村长类,如下图
再定义镇长类,如下图
最后执行测试如下图
上述demo中,镇长其实只需要和村长保持了解即可,不需要和村民保持了解。
迪米特法则实现
村民类没有改变,为了方便查看,再次贴图。
重新定义村长类,如下图
重新定义镇长类,如下图
最后执行结果一样,如下图
该demo中,镇长只和村长保持了解,村长只和村民保持了解。 所以遵循了最少知道原则。
以上就是对迪米特法则的理解。
欢迎朋友们对本文提出不同的观点。