![](/img/trans.png)
[英]What is the difference between Inversion of Control and Dependency injection in C++?
[英]In Inversion of Control, what is the difference between a callback and dependency injection?
我了解发生了什么,足以知道我缺少什么。 我知道如何在DI中使用接口或抽象类定义我的函数/方法可以接收的内容。 只要我的对象实现或扩展给定的类型,就可以将其传递给良好的去耦。
在回调中,我正在将一个函数传递给调用另一个函数的方法。 像C一样,我可以使用函数指针。 OOP语言是一样的东西,但是带有接口/抽象类。
我看到了分离,为什么这样好,可以扩展软件,等等,但两者之间没有区别。
我想念什么?
编辑:DI模式和回调实现吗?
依赖注入是一种软件设计模式,正如您所说的,它可以使代码解耦。 例如,使您能够与Oracle后端交换SQL后端或在开发环境或实时环境中交换电子邮件主机。
这自然会阻止在您的前端项目中添加说数据库代码,这显然不是一个好主意。
回调或委托是您在其中将一些代码作为参数传递给方法的位置。 您会在诸如集合之类的东西中看到很多,您可能希望在不同的使用者代码中使用不同的排序功能。
因此,如果您在哪里编写自己的DI容器,则将绑定对接口的引用,例如将IRepository绑定到具体的实现,例如SQLRepository或WebRepository。 您的DI代码使消费者可以使用配置文件(例如unity)或代码(Ninject)来定义在编译时使用哪种具体实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.