依赖注入

更新于 阅读 6

最近在做SDK的时候,对模块进行解藕,模块之间的依赖关系就需要进行处理,使用到了依赖注入,所以记录一下。

一、 什么是依赖注入

依赖注入就是基于调用方它所需要的事物

有两个模块Car、Enginer, Car依赖Enginer,实现方式可以如下, 方案一:

// Enginer class Enginer { } // Car class Car { constructor () { this.enginer = new Enginer(); } }

上面的方式是在依赖的内部实例化被依赖项,就是说汽车和发动机是紧密的结合在一起,如果要造两辆不同的车,仅仅只是发动机不一同,那么也需要重新设计一个Car类。 是不是可以将发动机从外部传入,这样就可以复用上面的Car类了,新的方案如下: 方案二:

// Enginer class Enginer { } // Car class Car { constructor (enginer) { this.enginer = enginer; } }

方案二就是依赖注入,将依赖的类作为参数传递给调用方就成为依赖注入。

二、总结

很多模块解藕的过程都会使用到依赖注入,可以方便代码的横向扩展,通体提高代码的可读性、可维护性。 依赖注入示例