全面的IoC(控制反转)项目示例

时间:2014-02-07 16:32:39

标签: inversion-of-control

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

任何人都可以为我提供真正的系统实现,正确实现IoC。

注意:我不是在谈论依赖注入。我目前正在使用容器,我使用全系统注射。我对代码保持解耦的方式更感兴趣,即如何执行库分离(在何种程度上),以及声明和包含的接口/合同代码的方式和位置。

由于

1 个答案:

答案 0 :(得分:1)

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

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

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

相关问题