码迷,mamicode.com
首页 > 其他好文 > 详细

依赖注入

时间:2019-05-19 09:47:39      阅读:100      评论:0      收藏:0      [点我收藏+]

标签:tor   运用   面向对象语言   服务   自己   装饰者   依赖关系   面向对象   str   

依赖注入是面向对象编程很重要的思想,是实现解耦很重要的一种手段。

依赖注入是指a依赖于b,a不直接在内部实例化b,而是通过注入的方式,也就是构建和使用分离。与之相关的思想是,面向接口编程,而不要面向实现编程。

依赖注入一般需要面向对象语言,或者可以用一定方式实现面向对象的语言(比如lua可以利用元表实现类和继承,js或者ts也有类和对象的概念)。为啥需要面向对象语言呢?因为依赖注入需要面向接口编程,这需要语言支持派生和多态。

依赖注入的形式主要有3种:1.构造函数注入(Constructor Injection)。2.接口注入。例如setMethod方法(Setter Injection)。3.设值方法(Setter Injection)。其实2和3是属于同一种方法。

应用:在23种设计模式当中,装饰者模式也有运用类似依赖注入的思想(但每个装饰者之间其实应该没有依赖关系?),每个装饰者在装饰自己之前,先装饰通过构造函数注入的前一个装饰者需要装饰的东西。类似的,策略模式也算是运用了依赖注入的思想。最近在看puremvc,感觉它里面的很多实现也都是依赖注入的思想。

其他:与依赖注入思想比较类似的是服务器定位器模式,它的思想是a依赖于b,a不直接在内部实例化b,而是通过服务器定位器获得b的实例。这实际上还是依赖注入的思想,只不过换了一种实现方式。

依赖注入

标签:tor   运用   面向对象语言   服务   自己   装饰者   依赖关系   面向对象   str   

原文地址:https://blog.51cto.com/zhangzhao/2396778

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!