迪米特法则的英文名称是 Low of Demeter,简称LoD。也称为最少知识原则(Least Knowledge Principle,LKP)

定义

一个对象应该对其它对象有最少的了解。通俗的讲,一个类应该对自己需要耦合或调用的类知道的最少,你(被耦合的类)的内部是如何的复杂都和我没关系,我只知道你提供的public方法,我就调用那么多,其它的一概不管。

含义

迪米特法则对类的低耦合提出了明确的要求,包含一下含义:

  • 只和朋友交流
  • 朋友间也是有距离的
  • 是自己的就是自己的
  • 谨慎使用Serializable

最佳实践

迪米特法则的核心观念就是类间解耦,弱耦合,只有弱耦合之后,类的复用率才可以提高,其要求的结果就是产生了大量的中转或跳转类,导致系统的复杂性提高,同时也为维护带来了难度,采用迪米特法则时需要反复权衡,既做到让结构清晰,又做到高内聚迪耦合。