今天我更新了我的项目,然后得到了这个警告:
Deprecated: ServiceManagerAwareInterface已被弃用,并将在3.0版本中删除,以及ServiceManagerAwareInitializer。请更新您的类X以删除实现,并开始通过工厂注入您的依赖项
我有一些主要的Base类,它们实现了ServiceManagerAwareInterface,并且有多个继承这些基类的类。
那么为每个这些类创建一个额外的工厂类是一个好的实践吗?还是使用1个AbstractFactory来初始化模块中的所有类更好?
使用AbstractFactory会影响性能吗?
注入单个(或2个)共享依赖项到多个类的最佳实践是什么?
更新: 尽管我接受了@AlexP的答案,但我对通过构造函数提供依赖项有一些担忧。想象一下这种情况:我有一个控制器和几个操作,例如ActionA需要ServiceZ,而ActionB需要ServiceY和ServiceX,而ServiceX还依赖于ServiceM和ServiceN。现在,每次调用ActionA时,我的控制器都会被初始化为这些服务,但ActionA只需要1个服务,其中我的控制器加载了5个服务...这是一个好的实践吗?这是正确的方法吗?由于在每个请求期间都会启动不会使用的服务,是否会影响性能?
现在,我允许每个服务/控制器自己处理其自身需求并在需要时加载服务。这样,我就不必初始化多个不会使用的服务,并且我不需要知道服务的依赖关系才能使用它们。我知道这不被认为是最佳实践,但代码很干净,我更愿意牺牲“最佳实践”以获得更好的性能。
感谢任何人对此的输入。
Deprecated: ServiceManagerAwareInterface已被弃用,并将在3.0版本中删除,以及ServiceManagerAwareInitializer。请更新您的类X以删除实现,并开始通过工厂注入您的依赖项
我有一些主要的Base类,它们实现了ServiceManagerAwareInterface,并且有多个继承这些基类的类。
那么为每个这些类创建一个额外的工厂类是一个好的实践吗?还是使用1个AbstractFactory来初始化模块中的所有类更好?
使用AbstractFactory会影响性能吗?
注入单个(或2个)共享依赖项到多个类的最佳实践是什么?
更新: 尽管我接受了@AlexP的答案,但我对通过构造函数提供依赖项有一些担忧。想象一下这种情况:我有一个控制器和几个操作,例如ActionA需要ServiceZ,而ActionB需要ServiceY和ServiceX,而ServiceX还依赖于ServiceM和ServiceN。现在,每次调用ActionA时,我的控制器都会被初始化为这些服务,但ActionA只需要1个服务,其中我的控制器加载了5个服务...这是一个好的实践吗?这是正确的方法吗?由于在每个请求期间都会启动不会使用的服务,是否会影响性能?
现在,我允许每个服务/控制器自己处理其自身需求并在需要时加载服务。这样,我就不必初始化多个不会使用的服务,并且我不需要知道服务的依赖关系才能使用它们。我知道这不被认为是最佳实践,但代码很干净,我更愿意牺牲“最佳实践”以获得更好的性能。
感谢任何人对此的输入。