码迷,mamicode.com
首页 > 其他好文 > 详细

概念:dependency injection, IOC, vs callback

时间:2019-01-18 00:53:51      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:img   导致   一个   基于   依赖项   UNC   两种   通用   point   

 

callback function as a dependency of the object that it is being passed into. DI is the process of providing the callback (the dependency) to the object. (For example: by giving it to the object via its constructor, a method call, a setter, etc.).

翻译: callback是具体的依赖, DI是注入依赖的过程

 

DI是IoC的子集

  • IoC意味着对象不会创建他们依赖的其他对象来完成他们的工作。相反,他们从外部服务(例如,xml文件或单个应用程序服务)获取他们需要的对象。我使用的IoC的2个实现是DI和ServiceLocator。
  • DI意味着在不使用具体对象而是使用抽象(接口)的情况下完成获取依赖对象的IoC原则。这使得所有组件链可测试,导致更高级别的组件不依赖于更低级别的组件,仅来自接口。Mocks实现了这些接口。

 技术分享图片

IoCI nversion o f C ontrol ): - 这是一个通用术语,以多种方式实现(事件,代理等)。

DID ependency I njection): - DI是IoC的子类型,通过构造函数注入,setter注入或接口注入实现

但是,Spring仅支持以下两种类型:

  • 二传手注射
    • 基于setter的DI是通过在调用无参数构造函数或无参数静态工厂方法来实例化其bean之后调用用户bean上的setter方法来实现的。
  • 构造函数注入
    • 基于构造函数的DI是通过调用具有多个参数的构造函数来实现的,每个参数代表一个协作者。使用这个我们可以验证注入的bean不是null并且快速失败(编译时失败而不是运行时),所以我们得到了启动应用程序本身NullPointerException: bean does not exist构造函数注入是注入依赖项的最佳实践。

 

概念:dependency injection, IOC, vs callback

标签:img   导致   一个   基于   依赖项   UNC   两种   通用   point   

原文地址:https://www.cnblogs.com/cutepig/p/10285503.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!