OCP(开闭原则)与IoC(控制反转)有什么关系?

我能想到的一个例子是模板模式,它是一种执行 IoC 的方式,也是 OCP 的一个例子。因为在模板模式中,我们定义了基本算法,它不能被子类更改,但可以覆盖该算法的继承步骤方法。所以将来如果我们想改变一个步骤的实现,我们可以创建另一个子类并实现这些步骤。

还有其他例子吗?


森林海
浏览 115回答 1
1回答

慕仙森

开闭原则建议您应该更喜欢具有可扩展行为的事物,这样当您需要它们做新事情时就不必修改它们的源代码。当你做得对时,控制反转同时是提供这种可扩展性的最简单和最强大的方法。这是最简单的方法,因为当您为 IoC 定义可注入接口时,您只捕获了您的需求。配置可扩展行为的其他方法要求您考虑消费者可能想要的一切。这是最强大的方式,因为代码可以做任何事情,提供一个 IoC 扩展点可以让消费者做各种你想不到的事情,只要他们满足你的接口定义的要求。同样,这是因为注入的接口仅捕获您自己的需求。因此,OCP 和 IoC 以一种非常简单的方式相关:OCP 是一个目标,而 IoC 是实现目标的手段。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java