控制与依赖注入反演的区别
这个问题在这里已经有了答案:
IoC是一个通用术语含义,而不是让应用程序调用框架中的方法,框架调用应用程序提供的实现。
DI是IoC的一种形式,通过构造函数/设置程序/服务查找将实现传递给对象,对象将“依赖”以便正确执行。
参考:控制反转与依赖注入
这些是在编程中实现松散耦合的模式
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的信息: -
什么是依赖注入?
你可以在这里找到这些概念的优点和应用。
控制反转意味着程序将控制委托给将驱动流IOC的其他人(控制反转)是一般的父项,而DI(依赖注入)是IOC的子集。 国际奥委会是一个应用程序流程颠倒的概念。 不属于该实体的逻辑的控制由其他人采取。 DI提供对象所需的对象。 因此,而不是依赖关系构造本身,它们被注入。 通过上述方法实现的最大好处是“解耦”,我们可以调用对象并传递任何保持对象的对象,以提高可重用性和维护性。
链接地址: http://www.djcxy.com/p/2315.html上一篇: Difference between Inversion of Control & Dependency Injection
下一篇: What are the benefits of dependency injection containers?