什么是控制反转(ioc),什么是依赖注入(di);
原来的程序设计,上层类依赖底层类,他们之间的构造函数都会新建自己依赖的底层类,这个时候开发就很方便,只需构造上层类实例就可以使用,但是这时候一旦底层发生变故,比如新增一个参数,就需要上层类依次传入底层类。所有的依赖关系上的类都需要改变。
后来人们发现这样十分不便,开始考虑控制反转;原来上层类依赖底层类,现在改为底层类依赖上层类,所有类依赖关系使用实例对象的引用来传递,这样就需要一层层地新建所需要的类,首先新建最底层的,依次往上,这样的话就不会出现新增一个参数,导致所有上层依赖的类都需要改变。
依赖注入是控制反转思路的实现,把上述一层层的依赖关系中涉及到的实体类都构建注入容器中,然后分别根据需要注入。