迪米特法则:(LoD) 面向对象七个基本原则之一
- 只与直接的朋友通信:对象应只与自己直接关联的对象通信,例如:方法参数、返回值、创建的对象。
- 避免“链式调用”:尽量避免通过多个对象链进行调用。例如,
a.getB().getC().doSomething()
这种形式不符合迪米特法则。
目的
- 降低耦合:通过减少对象之间的依赖关系,提高系统的可维护性和可扩展性。
- 提高灵活性:使得对象的内部实现可以独立变化,而不影响外部使用者。
- 对象之间越少知道越好。
例如,汽车有三个类 Car Engine Driver
这三个类里面Car与Engine交互是符合迪米特法则的
Driver如果与Car的内部结构Engine交互则视为增加了耦合度,不符合迪米特法则