控制反转和依赖注入之间的区别
2022-09-01 15:35:32
IoC和DI概念对我来说非常混乱,所以我阅读了很多不同人的观点和帖子,最终得出结论。因此,据我所知,这些主题是...
控制反转是Java中一种技术,用于制作松散耦合且更易于维护的应用程序,而依赖注入是实现此概念(技术)的方法之一。
控制容器的反转在运行时从 java 类注入依赖关系,以生成松散耦合的应用程序。
这是真的吗?如果我错了,请纠正我...
IoC和DI概念对我来说非常混乱,所以我阅读了很多不同人的观点和帖子,最终得出结论。因此,据我所知,这些主题是...
控制反转是Java中一种技术,用于制作松散耦合且更易于维护的应用程序,而依赖注入是实现此概念(技术)的方法之一。
控制容器的反转在运行时从 java 类注入依赖关系,以生成松散耦合的应用程序。
这是真的吗?如果我错了,请纠正我...
IoC是一个通用术语,意思是让应用程序调用框架中的方法,框架调用应用程序提供的实现。
DI是IoC的一种形式,其中实现通过构造函数/setters/服务查找传递到对象中,对象将“依赖”这些查找以正确运行。
参考 : 控制反转与依赖注入
这些是在Java编程中实现松散耦合的模式
DI(依赖注入):
依赖关系注入是一种模式,用于创建其他对象所依赖的对象的实例,而在编译时不知道将使用哪个类来提供该功能,或者只是将属性注入到对象的方式称为依赖关系注入。
我们有三种类型的依赖注入
Spring 将仅支持构造函数注入和 Setter/Getter 注入。
IOC(控制反转):
将控制权交给容器以创建和注入应用程序所依赖的对象的实例,意味着不是使用运算符创建对象,而是让容器为您执行此操作。控制反转依赖于依赖注入,因为需要一种机制来激活提供特定功能的组件new
这两个概念以这种方式协同工作,以允许编写更灵活,可重用和封装的代码。因此,它们是设计面向对象解决方案的重要概念。
依赖关系注入示例
以前我们是这样编写代码的。
Public MyClass{
DependentClass dependentObject
/*
At somewhere in our code we need to instantiate
the object with new operator inorder to use it or perform some method.
*/
dependentObject= new DependentClass();
dependentObject.someMethod();
}
使用依赖注入,依赖注入器将为我们取消实例化
Public MyClass{
/* Dependency injector will instantiate object*/
DependentClass dependentObject
/*
At somewhere in our code we perform some method.
The process of instantiation will be handled by the dependency injector
*/
dependentObject.someMethod();
}
上述将控制权交给其他一些(例如容器)进行实例化和注入的过程可以称为控制反转
您可以在我的答案中阅读有关依赖注入和IOC的更多信息:-您可以在此处找到这些概念的优点和应用。