2

我正在处理的演示应用程序有一个很长的启动例程。在此期间,我试图用新想法替换的应用程序大量记录到控制台(想象一下:“现在正在加载数据......网状样条......登录到第三方服务......”)。

在基本上从头开始学习 DI 之后,我现在只需调用容器即可创建整个(!)对象图。顺便说一句,谢谢大家在这里提供这么多的想法和惊人的答案。这个社区摇摇欲坠。

但是现在,我想做的是再次使初始化确定性,这样我就可以登录我的工作流程(我使用的是 Workflow Foundation 4.0,因为我喜欢声明式风格以及我可以用图形向人们展示发生了什么的事实)当我加载数据时,网状样条和所有这些。

你认为拥有一个“StartupManager”是一种可接受的做法吗 - 类(现在我的架构中唯一的单例,我杀死了所有其他“instance getter”!)它将调用它注入的对象的辅助初始化方法(我在这里使用了 buildUp() 和基于属性的 DI)?

原因是我想在我的工作流活动中显式调用长初始化方法。在编辑器中看起来很棒,当我呈现时我的老板会很高兴(他没有要求,这是我的想法,周末做点事情,我觉得这很有趣)。

4

1 回答 1

0

我假设您正在创建自己的 DI 框架来娱乐和学习,对吧?否则只需使用现有的。

不 :) 你不应该有任何静态的东西。您的算法可能如下所示:

  • 创建您的 DI 构建器的实例
  • 使用依赖项定义(从文件或以编程方式)提供该实例
  • 在该配置的构建器上调用您的 buildUp。此方法应返回上下文实例
  • 在你调用 give_me_object_x 的上下文中,你应该得到一个充满所有依赖项的对象 x

或者看看 spring 是如何构建的——它是编写良好的 DI 框架的一个很好的例子

于 2014-03-12T01:00:34.007 回答