design-patterns - 开闭原则 vs 策略模式

标签 design-patterns solid-principles

我已经阅读了策略模式和开放封闭原则对我来说都是一样的。如果它们相同,为什么我们有不同的名称模式\principle 。

请分享您对这一问题的看法。

最佳答案

OCP 比 Strategy 处于更一般的水平 - 这就是为什么它是 原则 而不是 模式 。 OCP 并没有说明应该有一个 X 类来执行 Y 和 Z 并以 W 方式与另一个类协作。它只声明类应该关闭修改但开放扩展。

您可以通过将类的某些职责外部化为策略并编写新的策​​略而不是修改类本身来在类中实现 OCP,但这并不是尊重 OCP 的唯一方法。还有其他模式可以帮助实现 OCP,例如抽象工厂。

关于design-patterns - 开闭原则 vs 策略模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13066488/

相关文章:

java - 避免将 InstanceOf 与访问者模式一起使用 - Java

c# - 基于运行时输入的依赖注入(inject)

c# - 单一职责原则(SRP)和我的 rpg 的类结构看起来 "weird"

java - 用于模拟变化很大的假模型的良好单元测试实践是什么?

c# - 如何在 C# 中使用带有继承的依赖注入(inject)

design-patterns - 在 Stylus/Sass 中编写多个主题的设计模式?

oop - 我应该如何在面向对象设计中实现数据库中规范化的项目?

c# - DDD : Enum like entities

design-patterns - 在 apache beam 中调用外部 API 的更好方法