Open xie233 opened 5 years ago
依赖注入,是控制反转(IoC)的一种实现,用于程序之间的解耦和便于实现其他功能(AOP面向切面编程)。最直接的就是当编写程序,需要引用其他类的方法时,不用自己主动的去new一个对象,而有一个相应的IoC容器将其处理好,直接拿这个对象即可,解决了当需要引用许多个类并且自己去new对象的繁琐,一般可以使用注解和反射来实现依赖注入,使用hashmap来充当程序的IoC。最佳实践便是最为流行的spring框架。相比于spring的庞大,Guice是一个小巧的依赖注入框架,可以在自己的项目中添加用于依赖注入
Why IoC? 假如有一个A类,A类里面使用了B、C类的方法,那么A要使用B、C里面的方法,是不是得主动的先new 一下B、C类的对象,然后再操作。问题来了,B、C类里面同样有引用其他E、F、G类的方法,嵌套调用,那么一些在A里没有出现的类是不是得也new一下。 素未谋面也要new一下,可能就几个类没啥关系,但是你要是想搞点大的,是不是有的绑住手脚的感觉。。这时候如果有个好心人主动的把你需要的对象给先new了然后在给你,你应该很高兴了,想写多少代码写多少hh。这就是说new对象的操作交给中间商来做,与之前需要自己主动new对象,刚好反过来,IoC控制反转的由来喽。
How IoC? 那用什么方法注入自己想要的对象呢