Dependency injection 依赖注入机制

Dependency injection 依赖注入机制,dependency-injection,ioc-container,Dependency Injection,Ioc Container,控制反转的优点是它将对象与它所依赖的对象的特定查找机制和实现解耦。因此,生产应用程序和测试都具有更大的灵活性 它实际上意味着什么?IoC的一个很好的例子是数据库模拟。在编写应用程序时,可能需要持久化对象,以便在以后某个时间点检索或使用。好的,要抽象出数据库,您需要使用如下方法创建一个接口: Interface DbSaver +void save( MyObject myObject ) +MyObject load( String id ) DbSaver saver = new Defau

控制反转的优点是它将对象与它所依赖的对象的特定查找机制和实现解耦。因此,生产应用程序和测试都具有更大的灵活性


它实际上意味着什么?

IoC的一个很好的例子是数据库模拟。在编写应用程序时,可能需要持久化对象,以便在以后某个时间点检索或使用。好的,要抽象出数据库,您需要使用如下方法创建一个接口:

Interface DbSaver
+void save( MyObject myObject )
+MyObject load( String id )
DbSaver saver = new DefaultDbSaver();
如果没有国际奥委会,你会有这样的情况:

Interface DbSaver
+void save( MyObject myObject )
+MyObject load( String id )
DbSaver saver = new DefaultDbSaver();
或者,您只需定义一个实现,并将其作为一个单例进行访问,该单例最初似乎适合于数据库操作对象:

MyDbSaver saver = MyDbSaver.getInstance();
有了IoC,您可以切换DbSaver的实现,而无需重新编译应用程序,至少Spring提供了这一点。也就是说,在不更改任何代码的情况下,您可以选择使用一个实现而不是另一个实现。对于数据库访问对象,最常见的做法是创建一个默认实现,将所有内容存储在内存中。在完成数据库设计、结构或技术后,您可以继续构建应用程序,而不必担心数据如何持久化。您只需在接口内工作


通过这种方式,业务对象与数据库集成分离,它有一个巨大的好处,就是允许两个部分并行开发。

避免昂贵的类型转换的迂回的方法,我们应该得到的是:ioc通过改变配置,可以灵活地分配特定接口的特定实现。因此,它具有灵活性。。如果我弄错了或部分弄错了,请纠正我。//谢谢你的回答。这就是我的想法,abc!