代码之家  ›  专栏  ›  技术社区  ›  Jigar Joshi

依赖注入机制

  •  0
  • Jigar Joshi  · 技术社区  · 15 年前

    控制反转的优点是它将对象与它所依赖的对象的特定查找机制和实现分离。因此,在生产应用和测试方面获得了更大的灵活性。

    这实际上意味着什么?

    1 回复  |  直到 15 年前
        1
  •  0
  •   Stefan Kendall    15 年前

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

    Interface DbSaver
    +void save( MyObject myObject )
    +MyObject load( String id )
    

    如果没有国际奥委会,你会得到这样的东西:

    DbSaver saver = new DefaultDbSaver();
    

    或者,您只需定义一个实现,并将其作为单例访问(最初似乎适合于数据库操作对象):

    MyDbSaver saver = MyDbSaver.getInstance();
    

    有了IOC,您可以在不重新编译应用程序的情况下切换dbsaver的实现(至少Spring提供了这一点)。也就是说,在不更改任何代码的情况下,您可以选择使用一个实现而不是另一个实现。对于数据库访问对象,最常见的事情是创建一个默认实现,该实现将所有内容存储在内存中。当您最终确定数据库设计、结构或技术时,您可以继续构建应用程序,而不必担心数据是如何持久化的。你只是在界面内工作。

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