迪米特法则(
Law of Demeter
,
LoD
)
也称为最少知识原则
(
Least Knowledge Principle,
LKP
),虽然名字不同,但描述的是同一个规则:一个对象应该对其他对象有最 少的了解。通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少,你(被耦合或调 用的类)的内部是如何复杂都和我没关系,那是你的事情,我就知道你提供的这么多public 方法,我就调用这么多,其他的我一概不关心。
迪米特法则还有一个英文解释是:
Only talk to your immediate friends
(
只与直接的朋友通 信。
)什么叫做直接的朋友呢?每个对象都必然会与其他对象有耦合关系,两个对象之间的 耦合就成为朋友关系,这种关系的类型有很多,例如组合、聚合、依赖等。