一、失常依赖对象的创立以及问题

1.我在A类中蕴含有B类对象、C类对象、D类对象,则失常应用时

public A(B,C,D){    this.b = b;    this.c = c;    this.d = d;}//创立A类对象B b = new B();C c = new C();D d = new D();A a = new A(b,c,d);

2.失常依赖对象的问题
①因为须要创立多个不同的对象,代码量大
②依赖有调整的时候,代码的耦合度比拟高,不利于扩大

二、什么是IOC?

1.IOC是一种思维,不是一种技术,他是为了解决失常依赖对象的创立问题而产生的,领导咱们如何设计出松耦合、更低劣的程序
2.IOC指由Spring来管制对象的生命周期和对象间的关系,举个例子说,咱们找女朋友,咱们须要找到她的微信、打听她的兴趣爱好、找机会意识他们等。失常创建对象就是相似的过程,咱们必须本人设计每个环节,须要的对象,咱们须要本人去创立它。而IOC容器相似婚介所,咱们就能够将咱们的“要求”通知Spring容器,由它来提供给咱们一个mm,整个过程不须要咱们管制,咱们只须要跟她谈恋爱、结婚就能够了
3.从下面咱们能够看出,管制反转了什么?反转了获取依赖对象的形式,失常咱们是靠“本人”,当初咱们是靠“第三方”

三、什么是DI?

1.DI是IOC的另一种说法或者说实现,他是一种技术,而不是一种思维
2.从下面咱们能够晓得,IOC思维是反转了获取依赖对象的形式,换句话说,取得依赖对象的过程由本身治理变成了由IOC容器被动注入,Martin Fowler在04年的时候给“管制反转”起了个其余的名字叫“依赖注入”,依赖注入指在IOC容器在运行时,动静地将某种依赖关系注入到对象中
3.它的实现形式是应用反射,因为反射容许运行时动静的生成对象、应用对象的办法、扭转对象的属性