【发布时间】:2018-02-06 05:12:32
【问题描述】:
我有一个依赖于多个其他服务类的服务类。
class Service1 {
}
class Service2 {
}
class Service3 {
}
class Service4 {
}
class Service5 {
public Service5(Service1 s1, Service2 s2, Service3 s3, Service4 s4);
}
是否有一种设计模式/最佳实践可以避免将多个服务传递给 Service5 构造函数。 当其他服务(service1、service2 等)需要调用 service5 执行某些操作时,它会变得复杂,因为它会导致循环依赖。
我能想到的一个解决方案是拥有一个 ServiceCollection 静态类,在该类上拥有所有服务的 getter。
【问题讨论】:
-
服务应该相互独立。循环依赖可能表明您的服务太大并且做得太多。您还可能在应用程序中缺少一个 dispatch 层,它将服务的调用与其逻辑分开。
标签: java design-patterns