今天继续打卡学习极客时间上的专栏“设计模式之美”, 本篇是专栏第20节的学习笔记,介绍面向对象设计原则中的KISS原则和YAGNI原则。

笔记

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

  • 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(迪米特法则,又叫做最少知识原则)

KISS原则

KISS原则直译过来就是"尽量保持简单”。 KISS原则是保持代码可读性和可维护性的重要手段,足够简单,也就意味着很容易读懂,这就让BUG不容易隐藏且更容易修复。 这个原则从另一个角度也给出了我们在做开发时不要过度设计,要学会用简单的方法解决复杂的问题。

KISS原则的"简单"不是以代码行数衡量的,代码行数少不代表简单,还要考虑逻辑复杂度、实现难度、代码可读性等。本身就复杂的问题,用复杂方法解决,并不违反KISS原则。 除此之外,同样的代码,在某个业务场景下满足KISS原则,换一个应用场景可能就不满足了。

KISS原则的几个指导原则:

  • 不要使用同事可能不懂的技术来实现代码
  • 不要重复造轮子,要善于使用已经有的工具类库
  • 不要过度优化

YAGNI原则

YAGNI原则直译就是"你不会需要它”,意思是"不要设计当前用不到的功能;不要去编写当前用不到的代码”,核心思想就是: “不要过度设计”.

YAGNI原则根KISS原则的区别: KISS讲的是"如何做”(尽量保持简单),而YAGNI原则说的是"要不要做”(当前不需要的就不要做)。

个人理解

这是偏指导方针的两个原则,看看好了。

参考