Language agnostic 确定性初始化和依赖注入(基于构造函数)

Language agnostic 确定性初始化和依赖注入(基于构造函数),language-agnostic,dependency-injection,deterministic,Language Agnostic,Dependency Injection,Deterministic,我正在开发的演示应用程序有一个很长的启动例程。我试图用新想法替换的应用程序在想象中会在控制台上记录很多日志:现在正在加载数据。。。网状样条线。。。登录到第三方服务 花了一整天的时间学习DI基本上是从头开始,我创造了整个!对象图现在只需对容器进行一次调用。谢谢大家,顺便说一句,提供了这么多的想法和惊人的答案。这个社区触礁了 现在,我想做的是让初始化确定性再次出现,这样我就可以登录工作流了,我使用工作流基础4,因为我喜欢声明式的风格和事实,我可以在图形上告诉人们,当我加载数据、网格花键等等时会发生什

我正在开发的演示应用程序有一个很长的启动例程。我试图用新想法替换的应用程序在想象中会在控制台上记录很多日志:现在正在加载数据。。。网状样条线。。。登录到第三方服务

花了一整天的时间学习DI基本上是从头开始,我创造了整个!对象图现在只需对容器进行一次调用。谢谢大家,顺便说一句,提供了这么多的想法和惊人的答案。这个社区触礁了

现在,我想做的是让初始化确定性再次出现,这样我就可以登录工作流了,我使用工作流基础4,因为我喜欢声明式的风格和事实,我可以在图形上告诉人们,当我加载数据、网格花键等等时会发生什么。 你认为让StartupManager类成为我架构中唯一的单例是可以接受的做法吗?现在,我杀死了所有其他实例获取者!这将在它被注入的对象上调用辅助初始化方法,我在这里使用了构建和基于属性的DI


原因是我想在我的工作流活动中显式地调用长初始化方法。在编辑中看起来很棒,我的老板会很高兴当我展示他没有要求的时候,这是我的主意,花周末做一些事情,而且我认为这很有趣。

我想你创建自己的DI框架是为了好玩和学习,对吗?否则,只需使用现有的一个

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

创建DI生成器的实例 从文件或以编程方式向该实例提供依赖项定义 在配置的构建器上调用您的构建。此方法应返回上下文的实例 在您调用give_me_object_x的上下文中,您应该得到一个包含所有依赖项的对象x
或者看看spring是如何构建的——它是编写良好的DI框架的一个很好的例子

我想您创建自己的DI框架是为了好玩和学习,对吗?否则,只需使用现有的一个

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

创建DI生成器的实例 从文件或以编程方式向该实例提供依赖项定义 在配置的构建器上调用您的构建。此方法应返回上下文的实例 在您调用give_me_object_x的上下文中,您应该得到一个包含所有依赖项的对象x 或者看看spring是如何构建的——它是编写良好的DI框架的一个很好的例子