【问题标题】:Comprehensive IoC (Inversion of Control) project example综合 IoC(控制反转)项目示例
【发布时间】:2014-03-05 04:12:39
【问题描述】:

所有关于这个主题的文章和论文都提供了过于简单的例子。这些概念很容易理解。但是,如果在这个主题上没有丰富的经验(我和我的队友),将概念映射到现实生活系统中的实际设计决策并非易事。无法验证我的架构。

谁能为我提供一个正确实现 IoC 的真实系统实现。

注意:我不是在谈论依赖注入。我目前正在使用容器,并且使用系统范围的注入。我对代码保持解耦的方式更感兴趣,即库分离是如何执行的(到什么程度),以及接口/合约代码是如何以及在哪里声明和包含的。

谢谢

【问题讨论】:

    标签: inversion-of-control


    【解决方案1】:

    开源 GlassFish 应用服务器 (https://glassfish.java.net/) 使用 hk2 (https://hk2.java.net) 作为 DI 容器。它有几个实现与合约分开的区域,实际上这些合约的实现可以在服务器启动和运行时动态添加或删除。

    例如,看看命令行 (asadmin) 工具。用户可以部署 OSGi 捆绑包,这些捆绑包可以添加命令行合约的新实现,然后将动态添加到管理员可以执行的操作集中。这是一个很好的例子,说明了如何使用 IoC 来保持合同和服务的分离。

    GlassFish 最初设计时并未使用 DI 容器也很有启发意义,因此对于如何将 DI/IoC 添加到最初并非以这种方式设计的系统中,这是一个很好的实际用例。

    【讨论】:

      猜你喜欢
      • 2015-07-30
      • 2019-02-03
      • 2020-01-21
      • 2021-07-02
      • 2011-05-27
      • 1970-01-01
      • 2021-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多