我最近一直试图了解基本的设计原则,OCP让我有点困惑。有意义的是,当发生变化时,最好扩展系统而不是修改现有和工作部分。但这不是一个如何在系统中实现变更而不是如何设计变更的原则吗?是不是所有的代码都基本上通过子类化来扩展?如何关闭任何代码进行修改 - 这不仅仅取决于实施变更的人选择如何使用它?
也许一些不遵循OCP的代码示例以及它违反原则的方式对我来说是最有帮助的。
由于
答案 0 :(得分:0)
一个典型的例子是任何分支在事物类型上的逻辑。 这样做意味着每次需要添加新类型时,都必须更改此代码。 使用虚函数意味着您只需为新类型添加新类,而无需更改现有代码。
那里有代码示例。