浅谈依赖注入

依赖注入是什么?

依赖注入的作用是什么?

依赖注入的应用场景?

如何实现依赖注入?

对于一个后端程序员来说,依赖注入应该是融入日常生活的,不理解依赖注入的后端程序员不是一个合格的程序员(我看来也不够格),为什么这么说呢,因为对于服务端语言来说,现在的依赖注入是编程的主流框架,例如Spring等等。

    什么是依赖注入。我们写代码的时候当我们需要某一个对象或模块时,我们一般是自己创建它,抱着奥卡姆剃刀的原则,如无必要,勿增实体,我们不可能每次都创建一大堆仅仅适用于当前上下文的对象,而且,在项目越来也复杂的时候,项目会变得难以维护,因为耦合度太高了,所以我们想要一种方式在;让每一块代码只负责自己的功能,其他的就交给“其他人”去做,每次需要一个模块的时候,和这个“其他人”说一声,他就会帮您提供,这种方式就可以理解为依赖注入,把当前代码块所以依赖的其他模块统一交给一个中间人(容器),我们使用时,只需要按照和这个容器约定好的协议写一段代码,容器读懂了这段代码,就会给你带来你想要的依赖。这就是依赖注入。

这个依赖注入系统最好能够在没有别人调用的时候不去创建对象,仅仅是调用即创建,且创建就可调用,无需多次创建。


实现依赖注入系统:

    首先这个容器要能够被整个工程调用,这个容器必然是全局对象。这个全局对象几个方法,一个方法要能够接受函数为参数,这个方法的目的是将这些函数变成可源码,一个方法自然就是解析这些源码,还要一个方法能够接受一些字符串为参数,他可以将字符串解析成对应的函数,当容器接收到需要调用某个函数的字符串时,这个方法就返回该对应函数,这样就是一个基本的依赖注入系统的模型,当然真的肯定要更复杂,在一个复杂工程中,性能问题是必须要考虑到的。

什么地方要使用依赖注入呢,我认为就只有一个标准:项目的复杂度。项目越复杂,需要扩展的地方就越多,后期维护的难度就越大,这也是为什么angular能成为大型项目首选的原因,得以依靠依赖注入,angular注定是为了大型项目而生的,但这也造成了他上手的难度(相对于其他的前端框架来说)。

依赖注入是一种编程思想,与之相关的是AOP,从功能出发,剖析项目的全局,使用依赖注入的方式取代之前的耦合,同时也使项目变得更有扩展性。

你可能感兴趣的:(浅谈依赖注入)