假设有以下服务类:
class A {}
class B {}
class C {}
现在,A 类
获得对B 类
的依赖。所以我只是注入(inject)B类
。
后来在开发中,我的 A 类
也需要 C 类
。
(这可能会一直持续下去......)
注入(inject)依赖容器以便能够根据需要使用所有服务是否更好?或者通过仅注入(inject)我需要的那些类来保持服务类较小?
这里的最佳实践是什么,为什么?
目前我倾向于注入(inject)我需要的每个依赖服务,主要是为了在一个地方查看依赖关系( header 中的 DI 注释)。
Please don't close as "opinion based" this questions is for best Practice, this have to be a opinion, but when a majority of users have the same opinion then its a best practice.
最佳答案
我建议不要注入(inject)整个服务容器。如果这样做,类依赖关系会变得模糊(例如,您必须遍历整个类代码才能查看该类需要哪些依赖关系),并且可能会导致困惑。
直接注入(inject)您需要的这些依赖项。如果您注意到您的类中有很多依赖项,那么应该提醒您,该类做了太多事情(或有太多职责),您应该将其拆分(或单独的职责)。
关于php - 软件架构: Service Dependency - Inject Container or concret class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21782087/