zoukankan      html  css  js  c++  java
  • 概念:dependency injection, IOC, vs callback

    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构造函数注入是注入依赖项的最佳实践。
  • 相关阅读:
    github上总结的python资源列表【转】
    Docker在windows下的使用【二】
    Docker在windows下的使用【一】
    RF环境安装-mac-osx10.10-基础环境-安装指南
    持续集成Jenkins+sonarqube部署教程
    微信朋友圈投票活动的刷票案例分析
    使用 Jenkins 搭建 iOS/Android 持续集成打包平台【转】
    unit3d 初次接触
    python pip 安装包报 编码问题
    深度学习 学习
  • 原文地址:https://www.cnblogs.com/cutepig/p/10285503.html
Copyright © 2011-2022 走看看