昨天在一次采访中我被问到春季的 DI 和 IoC 是什么。我的回复是:
when a class(A)
延伸摘要class(B)
或实施interface(B)
或创建一个对象class(B)
其中任何一个类,那么A
据说是
依赖于B
。注入这个依赖关系,即将对象注入
构造函数或setter方法中称为DI,在此过程中
对创建对象的控制权像 XML 一样转移到“外部世界”
配置中,这种控制反转就是IoC。 DI不一定是IOC。没有IOC的时候我们仍然可以有DI。
面试官不同意我的观点——我哪里错了?
还有一件事-
正如我们使用的Super class reference variable
or coding through interface
在构造函数或 setter 方法参数中。这是任何方式吗
与有关DI
/IOC
或者这只是为了实现loose coupling
?
IoC (I反转of Control) :与传统控制流相比,反转了控制流,即我们不应该创建对象和控制流,而是框架创建对象,将它们连接在一起并管理它们的生命周期,并使用 DI 来管理组件,即创建对象。
有几种基本技术可以实施控制反转。
- 使用工厂模式
- 使用服务定位器模式
- Using Dependency Injection(DI), for example
- 使用上下文查找
- 使用模板方法设计模式
- 使用策略设计模式
Source https://en.wikipedia.org/wiki/Inversion_of_control#Implementation_techniques
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)