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