【问题标题】:When is it OK to inject the injector?什么时候可以注射注射器?
【发布时间】:2011-05-17 01:11:47
【问题描述】:

如果您查看我一直在为 dependency injection in C++ 开发的库,我最近添加了 an example,它模仿了我为真实项目创建的东西:直接注入应用程序配置的能力。

这一切都很好,因为构造函数只要求一个 ConfigItem 类型并且它被神奇地传递了。

当我需要同时访问所有这些时出现问题(例如配置对话框)。

我想出的愚蠢解决方案是使用预处理器生成一个类,该类可以获取构造函数中的所有配置项,如 here 所示。

如果我可以注入注入器,这个问题将会“很好”解决,因为我只需要生成代码来收集所有 ConfigItem 实例,如 here 所示。

请注意,所有 ConfigItems 都在单例范围内。

希望这个问题有意义:您将如何做到这一点?

【问题讨论】:

  • 从描述上看,这在概念上听起来像这个问题:stackoverflow.com/questions/1891778/… 不过我不是 C++ 程序员,所以我可能弄错了。
  • 我认为它很相似,但我必须想象有更好的答案!

标签: c++ dependency-injection


【解决方案1】:

听起来你重新发明了Service Locator Pattern

【讨论】:

  • 我不喜欢那个!这就是为什么我不确定如何才能做得更好。它要么生成一个具有显式依赖关系的类(原则上可能有数百个!),要么生成使这种依赖关系隐式的代码。
猜你喜欢
  • 1970-01-01
  • 2012-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-25
  • 1970-01-01
  • 2023-03-23
相关资源
最近更新 更多