1

我很困惑在哪里定义我的所有依赖项。

加载所有可能的依赖项似乎是一个巨大的矫枉过正,而实际上它可能根本没有被使用。在需要的地方定义它们会导致代码重复。

在哪里定义什么?可能需要启动一次依赖项的配置?例如 Logger 或 DB 连接。

提前致谢。

4

1 回答 1

1

在我的工作中,我们遇到了这样的问题,我们使用了基于 Symfony2 的方法。我们有一个简单的依赖容器,它包含用于实际创建我们可能需要的依赖项的 lambda 函数,并且在第一次使用时,工厂被调用。

就像是:

DC['AFactory'] = function() { return new A(); };

DC 有一个依赖对象的“缓存”,所以每次你使用 DC->get('A') 之类的东西时,我们首先检查缓存是否被填充,在这种情况下,你得到存在的实例,否则,工厂函数被调用,存储在缓存中,然后你得到结果。这样,在实际使用之前,我们不必加载所有可能的依赖项。

于 2013-05-08T19:03:33.377 回答