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

控制反转与依赖注入

控制反转与依赖注入

大话西游666 2019-11-21 10:24:09
根据马丁·福勒(Martin Fowler)的论文,控制反转是程序控制流反向的原理:外部源(框架,服务,其他组件)代替程序控制程序流,而由程序控制流它。就像我们将某些东西插入其他东西一样。他提到了有关EJB 2.0的示例:例如,会话Bean接口定义了ejbRemove,ejbPassivate(存储到辅助存储)和ejbActivate(从被动状态恢复)。您不必控制何时调用这些方法,而可以控制它们的作用。容器给我们打电话,我们不给它打电话。这导致框架和库之间的差异:控制反转是使框架与库不同的关键部分。库本质上是您可以调用的一组函数,这些天通常组织成类。每个调用都会执行一些工作,并将控制权返回给客户端。我认为,DI是IOC的观点意味着对象的依赖关系被颠倒了:相反,它控制着它自己的依赖关系,生命周期……还有其他事情为您服务。但是,正如您手动告诉我的那样,DI不一定是IOC。我们仍然可以拥有DI而没有IOC。但是,在本文中(来自pococapsule,这是另一个C / C ++的IOC框架),它表明,由于IOC和DI,IOC容器和DI框架要优于J2EE,因为J2EE将框架代码混合到了组件中,因此不会使其成为普通的Java / C ++对象(POJO / POCO)。除依赖注入模式以外的控制容器的反转(归档链接)进一步阅读以了解旧的基于组件的开发框架有什么问题,该问题导致了上面的第二篇论文:控制反转的原因和内容(归档链接)我的问题:什么是IOC和DI?我很困惑。基于pococapsule,IOC不仅比反转对象或程序员与框架之间的控制更重要。
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 542 浏览
慕课专栏
更多

添加回答

举报

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