为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

森林海 2023-06-14 16:09:49
我能想到的一个例子是模板模式,它是一种执行 IoC 的方式,也是 OCP 的一个例子。因为在模板模式中,我们定义了基本算法,它不能被子类更改,但可以覆盖该算法的继承步骤方法。所以将来如果我们想改变一个步骤的实现,我们可以创建另一个子类并实现这些步骤。还有其他例子吗?
查看完整描述

1 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

开闭原则建议您应该更喜欢具有可扩展行为的事物,这样当您需要它们做新事情时就不必修改它们的源代码。

当你做得对时,控制反转同时是提供这种可扩展性的最简单和最强大的方法。

这是最简单的方法,因为当您为 IoC 定义可注入接口时,您只捕获了您的需求。配置可扩展行为的其他方法要求您考虑消费者可能想要的一切。

这是最强大的方式,因为代码可以做任何事情,提供一个 IoC 扩展点可以让消费者做各种你想不到的事情,只要他们满足你的接口定义的要求。同样,这是因为注入的接口仅捕获您自己的需求。

因此,OCP 和 IoC 以一种非常简单的方式相关:OCP 是一个目标,而 IoC 是实现目标的手段。


查看完整回答
反对 回复 2023-06-14
  • 1 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信