迪米特法则(Law of Demeter, LoD)是1987年秋天由lan holland在美国东北大学一个叫做迪米特的项目设计提出的,它要求一个对象应该对其他对象有最少的了解,所以迪米特法则又叫做最少知识原则(Least Knowledge Principle, LKP)。
迪米特法则的意义在于降低类之间的耦合。由于每个对象尽量减少对其他对象的了解,因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。
值得一提的是,这一法则却不仅仅局限于计算机领域,在其他领域也同样适用。比如,美国人就在航天系统的设计中采用这一法则。
通俗的说法有很多,比如,只与你直接的朋友们通信;不要跟“陌生人”说话;
这样做的目的就是降低类之间的耦合。想想上课的时候,老师经常说高内聚,低耦合。为了更好的理解,我们说一些题外话。拿笔记本电脑举例子,记得小时候,我拆笔记本电脑,内部的部件之间不像现在笔记本一样。部件之间的连线会比较多一点,不像现在的笔记本,说拆很快就能拆下来。这是为什么呢?因为现在的笔记本比我小时候的笔记本,在内部构件上,更具备独立性,一个部件高度内聚部件自己的功能职责,对外提供一个简单的接口。。我想如果不这样做,那么当我们要拆一个笔记本的时候,会很麻烦,内部数据线缠绕,你可以想象一下那样的场景,即使是一个熟练的技术工人,也未必能够很快的拆完笔记本。但是高度内聚之后,我们很方便就能够拆下来。并且,这样做的好处不仅仅是这样,当笔记本坏掉之后,我们也能够更快的测试时那一部分坏掉,然后将该部分拆下,装上新的部件能够马上使用。这些是高内聚,低耦合的好处。硬件如此,软件也是一样的,具有雷同之处,有很多原因让我们保证产品内部高内聚,低耦合。而遵从迪米特法则能够让我们的设计降低类之间的耦合。
原文:https://www.cnblogs.com/swpu-zw/p/12560933.html