2010-06-19 112 views
2

我正在使用的演示应用程序有很长的启动例程。 (想象一下:“现在加载数据...网状样条...登录到第三方服务...”)。确定性初始化和依赖注入(基于构造函数)

花了整整一天的时间从头开始学习DI,我现在创建整个(!)对象图,只需调用一次容器。谢谢大家,顺便提一下这么多的想法和惊人的答案。这个社区岩石。

但是现在,我想要做的是使初始化确定性再次,所以我可以登录我的工作流程(我使用Workflow Foundation 4.0,因为我喜欢声明式风格和事实,我可以显示人图形会发生什么)当我加载数据,网状样条等等。你觉得有一个“StartupManager” - 类(我现在的体系结构中唯一的单例,我杀死了所有其他的“实例getter”!),它会调用对象的辅助初始化方法是可以接受的做法吗?注入(我在这里使用buildUp()和基于属性的DI)?

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

回答

0

我假设你正在创建自己的DI框架以获得乐趣并学习,对吗?否则只是使用现有的。

否:)你不应该有任何静态的东西。你的算法可能看起来像:

  • 你DI建设者的创建实例
  • 进这个实例的依赖关系定义(从文件或编程)
  • 调用该配置建设者的积累。这个方法应该叫您give_me_object_x上下文返回上下文
  • 的实例,你应该得到一个对象x充满了所有的依赖

或者只是看看春天是如何构建的 - 它是写得很好,一个很好的例子DI框架

相关问题