专栏首页cwl_Java经典面试题-什么是控制反转(IOC)?什么是依赖注入(DI)?

经典面试题-什么是控制反转(IOC)?什么是依赖注入(DI)?

控制反转(IOC)

控制反转是应用于软件工程领域中的,在运行时被装配器对象来绑定耦合对象的一种编程技巧,对象之间耦合关系在编译时通常是未知的。在传统的编程方式中,业务逻辑的流程是由应用程序中的早已被设定好关联关系的对象来决定的。在使用控制反转的情况下,业务逻辑的流程是由对象关系图来决定的,该对象关系图由装配器负责实例化,这种实现方式还可以将对象之间的关联关系的定义抽象化。而绑定的过程是通过“依赖注入”实现的。

控制反转是一种以给予应用程序中目标组件更多控制为目的设计范式,并在我们的实际工作中起到了有效的作用。 依赖注入是在编译阶段尚未知所需的功能是来自哪个的类的情况下,将其他对象所依赖的功能对象实例化的模式。这就需要一种机制用来激活相应的组件以提供特定的功能,所以依赖注入是控制反转的基础。 否则如果在组件不受框架控制的情况下,框架又怎么知道要创建哪个组件?

在Java中依然注入有以下三种实现方式:

  • 1.构造器注入
  • 2.Setter方法注入
  • 3.接口注入

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • VUE-组件化

    在大型应用开发的时候,页面可以划分成很多部分。往往不同的页面,也会有相同的部分。例如可能会有相同的头部导航。

    cwl_java
  • 系统架构师论文-基于构件的软件开发

    2007年上半年,我参加了某市信息办技术服务平台的项目开发,担任系统平台的设计和开发工作,该项目主要为了支持某市党政机关专网的二期建设所开发设计的,它是一个在线...

    cwl_java
  • 系统架构师论文-基于构件的软件开发(在线学习支持服务平台)

    基于构件的软件开发是提高软件生产效率和软件产品质量的有效途径,本文结合我们的实践,以“在线学习支持服务平台"项目为例,讨论了基于构件的软件开发的技术的应用。由于...

    cwl_java
  • React Hooks简介

    组件间逻辑复用一直是个问题,Render Props、Higher-Order Components等常用套路模式都是为了分离横切关注点(Cross-cutti...

    ayqy贾杰
  • 在 CentOS 上如何将用户添加到 Sudoers

    sudo是一个命令行工具,它被设计为允许用户以其他用户(默认是 root 用户)身份去运行命令。

    雪梦科技
  • 共旋坐标法( 三 ) 算例

    为计算方便,根据对称性取半结构,且刻意将初始刚度设为1,便于观察。取半结构之后,自由度只有一个,用Excel也能算了。当外荷载较小时,不会出现“跳跃”...

    fem178
  • CCCF 微软沈向洋:理解自然语言:表述、对话和意境

    来源:《中国计算机学会通讯》2017年第12期《CNCC2017特邀报告》 微软全球执行副总裁沈向洋博士在2017年10月25日在福州举行的中国计算机大会(CN...

    企鹅号小编
  • GPRS(Air202) Lua开发: GPIO输入检测

    杨奉武
  • 【技术专栏】OpenVirteX体系结构之组件(一)

    2 组件 概要 本节描述OVX所使用的代表各种网络元素和OpenFlow消息的类和包。 2.1 概述 2.2 组件状态机 2.3 组件持久性 2.4 交换机(S...

    SDNLAB
  • 19 vue 模板语法及简要实现原理

    模板中的插值,包括文本插值与属性插值。在插值表达式中,还可以包涵一行简单的js代码。

    李艺

扫码关注云+社区

领取腾讯云代金券