我最近一直在努力学习基本的设计原则,而OCP让我有点困惑。当发生变化时,最好是扩展系统,而不是修改现有的和工作的部分。但是,这不是更多关于如何在系统中实现更改而不是如何设计更改的原则吗?难道不是所有的代码都可以通过使用子类化来进行扩展吗?如何才能关闭代码以进行修改--这不是取决于实现更改的人选择如何使用它吗?
也许一些不遵循OCP的代码的例子,以及它到底是如何违反该原则的,将对我理解这一点最有帮助。
谢谢
发布于 2010-10-21 07:35:44
一个典型的例子是根据事物类型进行分支的任何逻辑。这样做意味着每次需要添加新类型时,都必须更改此代码。使用虚函数意味着您可以只为新类型添加新类,而无需更改现有代码。
Open Closed Principle (PDF)
这里有一些代码示例。
https://stackoverflow.com/questions/3983138
复制相似问题