迪米特法则
定义
迪米特法则(Law of Demeter, LoD)是1987年秋天由lan holland在美国东北大学一个叫做迪米特的项目设计提出的,它要求一个对象应该对其他对象有最少的了解,所以迪米特法则又叫做最少知识原则(Least Knowledge Principle, LKP)。
意义
迪米特法则的意义在于降低类之间的耦合。由于每个对象尽量减少对其他对象的了解,因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。
迪米特法则的各种表述
- 只与你直接的朋友通信。
- 不要跟“陌生人通信”。
- 每一个软件单位对其他的单位都只有最少知识,而且局限于那些与本单位密切相关的软件单位。
迪米特法则
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中的一个类需要调用另一个类的另一个方法的话,可以通过第三者转发这个调用。
一个实例:朋友与陌生人
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类与之发生直接的相互作用,这就是直接与你的朋友通信(迪米特法则)。

浙公网安备 33010602011771号