开闭原则

林一二2023年05月17日 21:16

Open-Closed Principle 是面向对象设计的一个原则,它指导我们设计软件模块时应该对扩展开放,对修改关闭。换句话说,我们应该通过扩展已有代码来实现新的功能,而不是通过修改现有代码来实现。

开闭原则的目标是在软件系统中尽量减少修改已有代码的频率,从而降低引入错误和破坏现有功能的风险。

对开发者自己为什么有好处

使用开闭原则的好处之一是,当我们需要添加新的行为时,我们可以专注于编写新的代码,而不会对已有的代码产生副作用。这样,我们只需要触动有限的代码,减少影响面,减小引入错误的风险。

对协作为什么有好处

  1. 基类代码量会维持在比较小的程度
  2. 不需要深入研究每个具体的派生类
  3. 不需要重复基类中已经有的代码

可以减少其它程序员读代码所需的上下文长度,降低交流成本。

在非面向对象设计中,开闭原则的核心思想仍然是值得借鉴的。

在函数式编程中,我们可以通过编写可组合的函数和纯函数来实现开闭原则的类似效果。通过将功能模块化、避免在现有函数中直接修改代码,我们可以通过组合函数来实现新的功能,而不是直接修改现有函数。

在过程式编程中,可以使用类似的策略。将功能拆分为独立的过程或模块,并通过扩展或添加新的过程来实现新的功能,而不是直接修改现有的过程。

Code
Open-Closed Principle 是''面向对象设计''的一个原则,它指导我们设计软件模块时应该对扩展开放,对修改关闭。换句话说,我们应该通过扩展已有代码来实现新的功能,而不是通过修改现有代码来实现。

开闭原则的目标是在软件系统中尽量减少修改已有代码的频率,从而降低引入错误和破坏现有功能的风险。

!! 对开发者自己为什么有好处

使用开闭原则的好处之一是,当我们需要添加新的行为时,我们可以专注于编写新的代码,而不会对已有的代码产生副作用。这样,我们只需要触动有限的代码,减少影响面,减小引入错误的风险。

!! 对协作为什么有好处

# 基类代码量会维持在比较小的程度
# 不需要深入研究每个具体的派生类
# 不需要重复基类中已经有的代码

可以减少其它程序员读代码所需的上下文长度,降低交流成本。

!! 在非面向对象设计中,开闭原则的核心思想仍然是值得借鉴的。

在函数式编程中,我们可以通过编写可组合的函数和纯函数来实现开闭原则的类似效果。通过将功能模块化、避免在现有函数中直接修改代码,我们可以通过组合函数来实现新的功能,而不是直接修改现有函数。

在过程式编程中,可以使用类似的策略。将功能拆分为独立的过程或模块,并通过扩展或添加新的过程来实现新的功能,而不是直接修改现有的过程。