gpt4 book ai didi

java - 避免服务类之间的紧耦合

转载 作者:搜寻专家 更新时间:2023-11-01 03:09:59 25 4
gpt4 key购买 nike

假设我有 2 个服务类:

UserService
ProductService

如果在我的 ProductService 类中注入(inject) UserService 是错误的吗?

public class ProductserviceImpl implements ProductService {


@Autowired
UserService userService;


@Override
public void someThing() {
..
userService.otherThing(..);
..
}

}

我知道作为替代方案我可以创建另一个同时注入(inject) UserService 和 ProductService 的类,但是为此类命名非常棘手 :) 是否有这些类型的名称SOA 世界中的类?

最佳答案

1) 如果在我的 ProductService 类中注入(inject) UserService 是错误的吗?

这本身没有任何问题,但有以下注意事项:

  • 请注意,您可能会朝着一个类做太多事情的方向前进(这里是 ProductService)
  • 注意不要引入循环依赖(你不应该让 UserService 也依赖于 ProductService)
  • 通过将您的依赖项连接到接口(interface)而不是具体类来限制紧耦合(这里您自动连接 UserService 而不是 UserServiceImpl,这很好)

2) 是否有此类类的名称(同时注入(inject) UserService 和 ProductService)?

是的,如前所述,自 Mediator Pattern 以来,您可以将此类称为中介者似乎是在形容这个。

您可以同时拥有低级服务和高级服务,将低级服务(ProductService、UserService)注入(inject)到高级服务(例如,PurchaseOrderService 或 PurchaseOrderMediator)中。或者,对于这种特殊情况,您可能会将产品服务视为依赖于 UserService 的单个高级服务。那时更多的是关于哪个构造更多cohesive在您的业务逻辑和应用程序的上下文中。

关于java - 避免服务类之间的紧耦合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12943116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com