迪米特法则

概述

迪米特法则又称为最少知识法则,即:如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三方来转发这个调用。
迪米特法则特别强调的是类之间的松耦合,即在类的结构设计上,每一个类都应该尽量降低成员的访问权限。我们在进行程序设计时,类之间的耦合程度越小,越是有利于复用,一个出在弱耦合的类被修改的时候,对其他类造成的影响就越小。

UML

迪米特法则
当一个类提供服务的时候,最好是通过第三方向外暴露方法或者接口供其调用。这样的话可以降低方法提供者和使用者的耦合,当方法改变时造成的影响会最大程度降低。

总结

1)在类的创建和分工上,耦合越弱,就越有利于实现可复用的目标。
2)在类的结构设计上,每个类都应该降低成员的访问权限。
3)在类的设计上,尽量使得一个类在编写好以后足够稳定,不能经常需要调整。并且一旦调整,尽最大可能波及到的类少。
4)变量的范围要控制得当,尽量缩小影响范围,少用全局变量。