飞码网-免费源码博客分享网站

点击这里给我发消息

什么是依赖注入|-Javascript教程

飞码网-免费源码博客分享网站 爱上飞码网—https://www.codefrees.com— 飞码网-matlab-python-C++ 爱上飞码网—https://www.codefrees.com— 飞码网-免费源码博客分享网站

问题:

已经有好几个问题发布了关于依赖注入的具体问题,比如什么时候使用,有哪些框架可以使用。不过。

什么是依赖注入,什么时候/为什么应该或不应该使用它?

回答:

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

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

SomeClass()的构造函数如下:
public SomeClass() {
    myObject = Factory.getObject();
}

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

替代的解决方案。
  • 将myObject作为参数传递给构造函数。
public SomeClass (MyClass myObject) {
    this.myObject = myObject;
}
myObject可以直接传递,这使得测试更加容易。
  • 一个常见的替代方法是定义一个do-nothing构造函数。依赖注入可以通过setters来完成。(h/t @MikeVella)。
  • Martin Fowler记录了第三种选择(h/t @MarcDix),即类显式实现程序员希望注入的依赖关系的接口。
如果没有依赖注入,在单元测试中隔离组件是比较困难的。
 
飞码网-免费源码博客分享网站 爱上飞码网—https://www.codefrees.com— 飞码网-matlab-python-C++ 爱上飞码网—https://www.codefrees.com— 飞码网-免费源码博客分享网站
赞 ()

相关推荐

内容页底部广告位3
留言与评论(共有 0 条评论)
   
验证码: