栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

什么是控制反转?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

什么是控制反转?

控制反转(IoC)和依赖注入(DI)模式都是关于从代码中删除依赖的。

例如,假设您的应用程序具有文本编辑器组件,而您想提供拼写检查。您的标准代码如下所示:

public class TextEditor {    private SpellChecker checker;    public TextEditor() {        this.checker = new SpellChecker();    }}

我们在这里所做的创建了

TextEditor
和之间的依赖关系
SpellChecker
。在IoC场景中,我们改为执行以下操作:

public class TextEditor {    private IocSpellChecker checker;    public TextEditor(IocSpellChecker checker) {        this.checker = checker;    }}

在第一个代码示例中,我们实例化了

SpellChecker
this.checker = newSpellChecker();
),这意味着
TextEditor
该类直接依赖于
SpellChecker
该类。

在第二个代码示例中,我们通过

SpellChecker
TextEditor
构造函数签名中具有依赖项类来创建抽象(而不是在类中初始化依赖项)。这使我们可以调用依赖项,然后将其传递给TextEditor类,如下所示:

SpellChecker sc = new SpellChecker; // dependencyTextEditor textEditor = new TextEditor(sc);

现在,创建

TextEditor
类的客户端可以控制
SpellChecker
要使用的实现,因为我们将依赖项注入了
TextEditor
签名中。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/392229.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号