一、定义
迪米特法则:要求一个对象应该对其他对象有最少的了解,所以又叫做最少知识原则。
二、法则内容:
1、不该有直接依赖关系的类之间,不要有依赖:
即,不和陌生人说话,每个模块只和自己的朋友“说话”(talk),不和陌生人“说话”(talk)。
例:人——咖啡机——咖啡中,制作咖啡的加水、加咖啡豆步骤全部让咖啡机自己完成,不要对人暴露,减少间接依赖。
2、有依赖关系的类之间,尽量只依赖必要的接口(“有限知识”):
即,要求减少对朋友的了解。具体的实现方法是减少一个类对外暴露的Public方法或数据。
例:数据访问提供get、set接口,做到数据修改,内部完全控制感知。
三、目的:
1、实现高内聚: 降低类之间的耦合,由于每个对象应该尽量减少对其他对象的了解,因此,很容易使得系统的功能模块独立,相互之间不存在或者存在很少的依赖关系。
2、实现低耦合: 即使两个类有依赖关系,一个类的代码改动也不会或者很少导致依赖类的代码改动。