迪米特法则的意义在于降低类之间的耦合。由于每个对象尽量减少对其他对象的了解,因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中的一个类需要调用另一个类的另一个方法的话,可以通过第三者转发这个调用。
一个实例:朋友与陌生人
1 public class Someone 2 { 3 public void operation(Friend friend) 4 { 5 friend.forward(); 6 } 7 }
public class Friend { public Stranger stranger=new Stranger(); public void operation2() { System.out.println("In Friend.operation2()"); } public void forward() { stranger.operation3(); } }
Someone类与Stranger类不直接发生互相作用,而是通过中间的Friend类与之发生直接的相互作用,这就是直接与你的朋友通信(迪米特法则)。
原文:https://www.cnblogs.com/cxl66/p/12562971.html