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

什么是依赖注入?

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

什么是依赖注入?

依赖注入 将依赖传递给其他 对象框架 (依赖注入器)。

依赖注入使测试更加容易。注入可以通过 构造函数 完成。

SomeClass()
其构造函数如下:

public SomeClass() {    myObject = Factory.getObject();}

问题 :如果

myObject
涉及复杂的任务,例如磁盘访问或网络访问,则 很难
对其进行单元测试
SomeClass()
。程序员必须进行模拟,
myObject
并可能 拦截 工厂调用。

替代解决方案

  • myObject
    作为参数传递给构造函数

    public SomeClass (MyClass myObject) {
    this.myObject = myObject;
    }

myObject
可以直接通过,这使测试更加容易。

  • 一种常见的替代方法是定义 空操作构造函数 。依赖注入可以通过设置器来完成。(h / t @MikeVella)。
  • Martin Fowler记录了第三种选择(h / t @MarcDix),其中 类显式实现了 程序员希望注入的依赖项 的接口

如果没有依赖注入,则很难在单元测试中隔离组件。

2013年,当我撰写此答案时,这是Google Testing
Blog的一个主要主题。这对我来说仍然是最大的优势,因为程序员在运行时设计中并不总是需要额外的灵活性(例如,对于服务定位器或类似的模式)。程序员在测试过程中经常需要隔离类。



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

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

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