我已经阅读了策略模式和开放封闭原则对我来说都是一样的。如果它们相同,为什么我们有不同的名称模式\principle 。
请分享您对这一问题的看法。
最佳答案
OCP 比 Strategy 处于更一般的水平 - 这就是为什么它是 原则 而不是 模式 。 OCP 并没有说明应该有一个 X 类来执行 Y 和 Z 并以 W 方式与另一个类协作。它只声明类应该关闭修改但开放扩展。
您可以通过将类的某些职责外部化为策略并编写新的策略而不是修改类本身来在类中实现 OCP,但这并不是尊重 OCP 的唯一方法。还有其他模式可以帮助实现 OCP,例如抽象工厂。
关于design-patterns - 开闭原则 vs 策略模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13066488/