迪米特原则
定义:一个对象应该对其他对象保持最少的了解。
简单的定义:只与直接的朋友通信。
解释:要使对象对其他对象了解的少,只与直接朋友通信,就可以了。每个对象都会与其他对象有耦合关系,朋友关系是对象之间有耦合关系。耦合的方式:依赖、关联、组合、聚合等。其中,我们称出现成员变量、方法参数、方法返回值中的类为直接的朋友。
案例:
需求:通过手机上的APP来阅读设计模式这本书。
分析:功能实现了,细看会发现代码的逻辑不对。哪里不对呢?书籍和应用对象都在手机上,我们打开手机,这时手机是没有书籍的,只有当我们打开阅读软件,才有书籍可以看,没有阅读软件,书籍是看不了的。
手机和阅读软件是朋友,阅读软件和书籍是朋友,手机和书籍不是朋友,所以它们不应该有交集,应该离得远远的。
所以我们进行重构:
结果还是一样的;符合迪米特法则,手机中有阅读软件,阅读软件中有书籍,手机没有书籍任何影子。
迪米特法则的核心观念就是类间解耦,弱耦合,只有弱耦合了以后,类的复用率才可以提高,其要求 的结果就是产生了大量的中转或跳转类,类只能和朋友交流,朋友少了你业务跑不起来,朋友多了,你项 目管理就复杂。