最简单直接地理解Java软件设计原则之迪米特法则

理论性知识

定义

迪米特法则 ,Law of Demeter(LoD);

该原则是由lan holland(人名)在美国东北大学一个叫做迪米特的项目设计中提出的,所以被命名为迪米特法则。同时该原则要求一个对象应该对其他对象保持最少的了解。所以又被称为最少知道原则(Least Knowledge Principle, LKP)。

尽量降低类与类之间的耦合。

强调只和朋友说话,不和陌生人交流。

那么什么是朋友呢

出现在成员变量、方法的输入和输出参数中的类称为朋友类,出现在方法体中的类不属于朋友类。

优点

降低类之间的耦合。

代码实战demo

现在属于疫情防控的关键时期,人人都不可大意。现在镇长命令某村村长统计一下你们村有多少人已经做过核酸检测,有多少人未做核酸检测。

非迪米特法则实现

首先定义村民类,如下图。

最简单直接地理解Java软件设计原则之迪米特法则

 

然后定义村长类,如下图

最简单直接地理解Java软件设计原则之迪米特法则

 

再定义镇长类,如下图

最简单直接地理解Java软件设计原则之迪米特法则

 

最后执行测试如下图

最简单直接地理解Java软件设计原则之迪米特法则

 

上述demo中,镇长其实只需要和村长保持了解即可,不需要和村民保持了解。

迪米特法则实现

村民类没有改变,为了方便查看,再次贴图。

最简单直接地理解Java软件设计原则之迪米特法则

 

重新定义村长类,如下图

最简单直接地理解Java软件设计原则之迪米特法则

 

重新定义镇长类,如下图

最简单直接地理解Java软件设计原则之迪米特法则

 

最后执行结果一样,如下图

最简单直接地理解Java软件设计原则之迪米特法则

 

该demo中,镇长只和村长保持了解,村长只和村民保持了解。 所以遵循了最少知道原则。

以上就是对迪米特法则的理解。

欢迎朋友们对本文提出不同的观点。

posted @ 2021-02-02 13:45  蜗牛学编程  阅读(68)  评论(0编辑  收藏  举报