繁体   English   中英

DI Boost C ++ 14和动态容器

[英]DI Boost C++14 and dynamic containers

首先, Boost.DI看起来是非常有用的工具,用于基于C ++ 14的依赖注入创建代码。 它的文档非常好,我使用Boost.DI相当快地创建了基本应用程序,但是我仍然可以弄清楚如何处理带有一些注入依赖项的动态初始化的对象容器。 Boost.DI将在主应用程序中通过注入器对象初始化整个应用程序类树,但是如果我有例如带有加载方法的类“ Foo”,该类需要xml资源并想要创建一堆对象“ Bar”(带有一些对象)依赖已创建模块的资源)。 我应该将注入器对象传递到Foo中,还是将一些工厂注入Foo中并在该工厂中创建条形图? 注入注入器似乎真的很奇怪,并且使注入器全局导致任何人都可以创建任何东西的危险情况。 注入工厂只会将相同的问题转移到其他地方,工厂如何在没有注入器对象的情况下创建钢筋?

在您的方案中,听起来您可以从Foo类中获取所有知道如何加载XML和创建Bar逻辑,并从工厂lambda调用此逻辑,您在创建注入器时将其绑定到Bar

如果加载XML并创建Bar的逻辑取决于注入器需要创建的其他类,则该注入器将是工厂lambda接收的参数。 它不必是全局注入器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM