什么是控制反转?

什么是控制反转?,第1张

什么是控制反转?

控制反转(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
签名中。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4978765.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存