今天我更新了我的项目,我收到了这个警告:
已弃用:ServiceManagerAwareInterface 已弃用,将在 3.0 版中与 ServiceManagerAwareInitializer 一起删除。请更新您的 X 类以删除实现,并开始通过工厂注入您的依赖项
我有一些Base
实现这些基类的主类ServiceManagerAwareInterface
和多个类。
那么为这些类中的每一个创建额外的工厂类是一个好习惯吗?还是为每个模块使用1 个 AbstractFactory并在其中启动类更好?
使用 AbstractFactory 影响性能的剂量?
在许多类中注入单个(或两个)共享依赖项的最佳实践是什么?
更新:即使我接受了@AlexP 的回答,但我对提供依赖项抛出构造函数有些担忧。想象一下这个场景:我有一个控制器,有几个动作,免得说ActionA需要ServiceZ,ActionB需要ServiceY和ServiceX,而ServiceX也依赖于ServiceM和ServiceN。现在每次我调用 ActionA 时,我的控制器都会启动所有这些服务,但 ActionA 只需要 1 个服务,而我的控制器加载了 5 个服务......这是一个好习惯吗?这是正确的方法吗?这不会有糟糕的性能,因为在每个请求中都会启动我们在该请求期间根本不会使用的服务?
现在我允许每个服务/控制器处理自己的需求并在需要时加载服务。
这样我就不必启动多个我不会使用的服务,也不需要知道服务依赖项来使用它们。我知道这不被接受为最佳实践,但代码很干净,我更愿意牺牲“最佳实践”以获得更好的性能。
感谢任何人对此的投入。