1

我最近一直在尝试学习基本的设计原则,而 OCP 让我有些困惑。有意义的是,当发生更改时,最好扩展系统而不是修改现有的和工作的部分。但这不是更多关于如何在系统中实现更改而不是如何设计的原则吗?通过使用子类化,不是所有代码基本上都可以扩展吗?以及如何关闭任何代码以进行修改 - 这不仅取决于实施更改的人选择使用它的方式吗?

也许一些不遵循 OCP 的代码示例以及它究竟是如何违反该原则的,这对我理解这一点最有帮助。

谢谢

4

1 回答 1

0

一个典型的例子是任何基于事物类型分支的逻辑。这样做意味着每次需要添加新类型时,都必须更改此代码。使用虚函数意味着您可以为新类型添加新类,而无需更改现有代码。

开闭原则 (PDF)

里面有代码示例。

于 2010-10-20T23:35:43.983 回答