【发布时间】:2014-02-14 14:33:38
【问题描述】:
假设以下服务类:
class A {}
class B {}
class C {}
现在Class A 依赖于Class B。所以我只注入Class B。
在开发的后期,我的Class A 也需要Class C。
(这可能会一直持续下去......)
注入依赖容器以便能够根据需要使用所有服务是否更好。或者通过只注入我需要的那些类来保持服务类很小?
这里的最佳做法是什么,为什么?
目前我倾向于注入我需要的每个依赖服务,主要是在一个地方查看依赖关系(标题中的DI注释)。
请不要因为“基于意见”而关闭这个问题是最好的 实践,这必须是一个意见,但是当大多数用户有 相同的意见是最佳实践。
【问题讨论】:
-
注入容器称为Service Locator,一种反模式。然而,最佳实践是意见,如果许多人有相同的意见并没有什么区别,它仍然是在征求意见。
-
我不同意这只是一个意见问题。有一些理由可以证明这里的答案是正确的,例如,请参阅我的答案。
-
在 Programmers.SE 上试一试,如果它是最佳实践的话。说“不要投票结束”并不是什么神奇的免疫咒语,可以防止人们关闭一个离题的问题。
-
@LegoStormtroopr 你知道“属于...”有一个关闭选项
标签: php symfony design-patterns dependency-injection software-design