今天继续打卡学习极客时间上的专栏“设计模式之美”, 本篇是专栏第22节的学习笔记,介绍面向对象设计原则中的迪米特法则(LOD)原则。

笔记

面向对象有很多经典的设计原则:

  • SOLID5原则分别是
    • 单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖反转原则(DIP)
  • KISS - Keep It Simple, Stupid
  • YAGNI - You aren't gonna need it
  • DRY - Don't Repeat Yourself
  • LOD - Law of Demeter(迪米特法则,又叫做最少知识原则)

LOD原则

“高内聚、弱耦合"是一个非常重要的设计思想,能够有效的提高代码的可读性和可维护性,能够缩小功能改动导致的代码改动范围。 “高内聚、弱耦合"实际上可以作为很多设计思想、设计原则的总纲,很多设计思想、设计原则都是以实现"高内聚、弱耦合"为目的,例如单一职责原则(SRP)、基于接口而非实现编程等等。

“高内聚、弱耦合"是一个通用的设计思想,适用于不同代码粒度的设计和开发,例如: 系统、模块、类,甚至是函数,也可以应用到不同的开发场景中,如微服务、框架、组件、类库开灯。 把这些统称为组件,则"高内聚"用来指导组件本身的设计,“松耦合"用来指导组件之间的依赖关系的设计”。

迪米特法则(LOD): 每个模块都只应该了解那些与它关系密切的模块的有限只是。或者说,每个模块只和自己的朋友说话,不和陌生人说话。

LOD原则在指导类设计上,不该有直接依赖关系的类之间,不要有依赖;有依赖关系的类之间,尽量只依赖必要的接口(即有限知识)

个人理解

LOD原则也是一个指导方针型原则,看看就好了。

参考