第十一章 无熟人难办事—迪米特法则

仅仅是个人学习笔记,不具备参考价值

定义

迪米特法则(也叫最少知道原则):如果两个类不必直接通信,那么这两个类就不应当发生直接的互相作用。如果其中一个类需要调用另一个类中的方法,可以通过第三者转发这个调用。简单的说就是一个类应该保持对其它类最少的了解。

怎么理解迪米特法则呢,就像书中举的例子,小菜需要安装电脑,找到人事部的小杨,小杨介绍小张给小菜认识,让小张帮着装电脑,这个时候小菜已经认识了小杨和小张两个人。小张临时有事被叫走了,小菜有找到小杨,小杨有介绍小李给小菜认识,让小李帮小菜装电脑。这个时候小菜为了装电脑这件事已经认识了小杨、小张、小李,用OO的思想来说就是小菜类已经和小杨、小张、小李类耦合了,有关系了,受到影响的因素就多了。
其实我们仔细分析这个问题,是因为公司的管理制度造成的,我们可以说是程序设计不好导致的。如果制度是这样的,小菜装电脑这件事只需找到小杨,小杨打电话给IT部门,告诉IT部门有新同事要装电脑,你们指派一个人来负责整个事情。也就是说小菜是一个类,小杨是一个类,IT部门就是一个接口或抽象类,小李和小张都继承或实现整个抽象。小菜只需要找到小杨即可,不需要再跟IT部门的什么小张、小李有关系。

要点

  1. 迪米特法则首先强调的是每个类应当尽量降低成员的访问权限,将负责的业务逻辑封装好,需要向外提供调用的设置成public,不需要的设置成private。
  2. 迪米特法则的根本思想是强调类之间的松耦合,减少了类之间的不必要依赖。

你可能感兴趣的:(第十一章 无熟人难办事—迪米特法则)