我今天参加了关于设计模式的考试。有一个问题我不知道答案,我很好奇。
对或错
"The open/closed principle is the key to the strategy pattern".
我问教授他所说的“关键”是什么意思,并澄清:“没有OCP,你还有策略模式吗?”
你们有什么想法吗?
我今天参加了关于设计模式的考试。有一个问题我不知道答案,我很好奇。
对或错
"The open/closed principle is the key to the strategy pattern".
我问教授他所说的“关键”是什么意思,并澄清:“没有OCP,你还有策略模式吗?”
你们有什么想法吗?
我在大学时讨厌这些类型的问题,因为我一直觉得它们是固执己见的。
不过,如果我必须给出一个答案,我会说False。
为什么 ?
我认为 OCP 是一个通用原则,适用于从代码中的小规模重构到架构模式的许多层面,而且它不仅限于设计模式。
OCP 建议您保持您的代码对扩展开放而对修改关闭,当然策略模式适用于这一点,因为您可以在运行时和将来添加更多策略,而无需修改您的代码,但这并不意味着策略不会没有OCP就不会存在。
实际上,让我说 False 的想法是,我认为 Strategy 模式的关键是原则:Program to Interface Not to an Implementation,即使在大学里,我们也是按照确切的顺序学习它们的。