Spring IOC 容器
Spring IOC 容器
传统对象的创建本质上是类与类之间的依赖,A类调用B类也就是A类依赖于B类,当大型应用中的类的数量达到一定的程度时,类与类之间复杂的依赖关系导致整个应用就会表现出高耦合的状态【耦合:模块间关联程度的衡量】,不利于持续开发和后期维护。
Spring的IOC容器并没有消除类与类之间互相依赖的本质关系,而是将类与类之间的依赖转变为类对于容器的依赖。所有的类都在容器中注册,在IOC容器的支持下,A类调用B类的过程就变成了容器向A类中注入B类的过程(DI)。
举个栗子:
追溯到没有货币,以物易物的时代,假设村子里的张三需要一支笔,于是拿一颗鸡蛋去李四家换。时代变迁,村子里的人越来越多,人们对必需品的需求量越来越大,种类也越来越多,挨家挨户的去交换就会变得非常麻烦。
这个时侯,王二麻子想出了一个办法:让所有的村民把物品都集中在自己这里登记并兑换积分。一定积分可以兑换其他等值的物品。这样,所有的村民只需要在王二麻子这里用积分兑换物品,不需要挨家挨户一个一个去交易了。在这个系统中,王二麻子充当的角色就是IOC容器,集中负责村民间的物品交易,极大提升了效率。
概念上的理解没有绝对的标准答案,仁者见仁智者见智。