Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 在没有OCP的情况下,您是否仍然拥有战略模式?_Design Patterns_Strategy Pattern_Open Closed Principle - Fatal编程技术网

Design patterns 在没有OCP的情况下,您是否仍然拥有战略模式?

Design patterns 在没有OCP的情况下,您是否仍然拥有战略模式?,design-patterns,strategy-pattern,open-closed-principle,Design Patterns,Strategy Pattern,Open Closed Principle,今天我考了设计模式。有一个问题我不知道答案,我很好奇 真假 "The open/closed principle is the key to the strategy pattern". 我问教授“关键”是什么意思,并澄清道:“没有OCP,你还有战略模式吗?” 你们有什么想法吗?我在大学时就讨厌这种问题,因为我一直觉得他们固执己见 然而,如果我必须给出一个答案,我会说错 为什么? 我认为OCP是一个普遍的原则,适用于从代码中的小重构到架构模式的多个层次,它不仅限于设计模式 OCP建议您保持代码

今天我考了设计模式。有一个问题我不知道答案,我很好奇

真假

"The open/closed principle is the key to the strategy pattern".
我问教授“关键”是什么意思,并澄清道:“没有OCP,你还有战略模式吗?”


你们有什么想法吗?

我在大学时就讨厌这种问题,因为我一直觉得他们固执己见

然而,如果我必须给出一个答案,我会说

为什么?

我认为OCP是一个普遍的原则,适用于从代码中的小重构到架构模式的多个层次,它不仅限于设计模式

OCP建议您保持代码开放以进行扩展,关闭以进行修改,当然策略模式会应用这一点,因为您可以在运行时和将来添加更多的策略,而无需修改代码,但这并不意味着没有OCP就不存在策略

实际上,让我说错话的是,我认为策略模式的关键是原则:程序与实现的接口,即使在大学里,我们也是按照这个顺序学习的