mysql主从复制与读写分离!

C++学习(三一八)Android的Logcat

  返回  

Spring IoC容器与Bean管理一:Spring初识一:IoC(控制反转)概念性简述;

2021/7/21 5:39:34 浏览:

【Spring IoC容器与Bean管理】部分,主要有以下内容:


本篇博客的主要内容是:介绍什么IoC(控制反转);都是,一些概念性描述; 


目录

一个生活中的例子:

IoC(控制反转)是什么:

DI依赖注入:


 

一个生活中的例子:

在【工厂模式一:设计模式简介;工厂模式简介&案例;】中也使用了这个例子,简单工厂模式虽然和IoC不是一个东西,但多少还是有点类似之处;

一个生活中的案例:比如购买自己想吃的苹果;

 

初始情况:比如,我们眼前有三种苹果供选择,但是我们想吃甜甜的苹果,为此,我们需要把【红富士】、【青苹果】、【金帅】挨个尝一边,才能知道我们需要的是【红富士】。

有了水果摊老板的加入:只需要把我们的需求【想吃甜甜的苹果】,告诉水果摊老板,水果摊老板就会把【红富士】推荐给我们; 

       上面的案例,消费者把【水果的选择】这个工作,转交给了水果摊老板;这个职责转交的过程,就有点控制反转的意味了。自然,为了实现上面的过程,水果摊老板需要有很多工作去做,比如水果摊老板自己就要把【红富士】、【青苹果】、【金帅】这三种苹果批发过来,并且需要了解这三种苹果的特点。


 

IoC(控制反转)是什么:

IoC控制反转的核心理念是:不是最终的消费者去负责创建对象,而是引入一个中间人角色,由这个中间人统一负责对象的创建过程;

(1)何为【反转】:【由,对象的使用方,去创建对象】变成了【由,IoC容器,去创建对象】;即,【直接和对象打交道,创建对象】的这个职责发生了转换;

(2)IoC(控制反转)的好处:降低了对象之间的耦合:方便了后续的扩展和维护

          ● 没有代理人之前,【对象的使用方】需要了解所有对象的内容后,才能知道我们需要的是哪个对象;而这种情况,【对象的使用方】和【对象】是硬性关联,程序难以维护和扩展;

          ● 但是,引入代理人之后,【对象的使用方】不用去了解所有的对象,【对象的使用方】直接和代理人【IoC容器】打交道就行了;这就意味着,【对象的使用方】和【对象】之间,通过【IoC容器】这个代理人,实现了解耦;对象之间更加灵活,方便扩展和维护;


 

DI依赖注入:

 

(1)IoC是一种设计理念,与语言无关;现代应用程序在进行对象关系设计的时候,或多或少的都要引入IoC理念;

(2)但是,为了在实际软件中应用IoC这种设计理念,在编程语言中,就是使用DI(依赖注入)这种策略去实现的;DI(依赖注入),主要是在【程序运行时】完成对象的创建和绑定工作; 

(3)为了实现DI(依赖注入)这种策略,在Java这种语言中,底层是利用反射技术来实现的;(关于反射可以参考【Java反射一:反射引入(一个案例,感性认识什么是反射);(.class,Class.forName()和.getClass()的区别)】及附近文章)

(4)为了实现DI(依赖注入)策略,不同的语言的具体方式不同;比如,Java中使用反射技术,Python和.Net又有其他的技术来实现;

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号