我很困惑在哪里定义我的所有依赖项。
加载所有可能的依赖项似乎是一个巨大的矫枉过正,而实际上它可能根本没有被使用。在需要的地方定义它们会导致代码重复。
在哪里定义什么?可能需要启动一次依赖项的配置?例如 Logger 或 DB 连接。
提前致谢。
我很困惑在哪里定义我的所有依赖项。
加载所有可能的依赖项似乎是一个巨大的矫枉过正,而实际上它可能根本没有被使用。在需要的地方定义它们会导致代码重复。
在哪里定义什么?可能需要启动一次依赖项的配置?例如 Logger 或 DB 连接。
提前致谢。
在我的工作中,我们遇到了这样的问题,我们使用了基于 Symfony2 的方法。我们有一个简单的依赖容器,它包含用于实际创建我们可能需要的依赖项的 lambda 函数,并且在第一次使用时,工厂被调用。
就像是:
DC['AFactory'] = function() { return new A(); };
DC 有一个依赖对象的“缓存”,所以每次你使用 DC->get('A') 之类的东西时,我们首先检查缓存是否被填充,在这种情况下,你得到存在的实例,否则,工厂函数被调用,存储在缓存中,然后你得到结果。这样,在实际使用之前,我们不必加载所有可能的依赖项。