gpt4 book ai didi

java - 在 spring 服务层使用继承是最佳实践吗?

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

我有两个名为 PowerUserManagerSimpleUserManager 的服务 bean。两个被 @Service 注释的类都有大约 20% 的代码是相同的

我已经构建了一个具有公共(public)抽象 类 (BaseUserManager) 的继承树,以减少两个类之间的冗余。

                               BaseUserManager
|
---------------
| |
PowerUserManager SimpleUserManager

然后在我的 @Controller 或任何客户端类中,我使用 @Autowired 注释来注入(inject) PowerUserManagerSimpleUserManager 我根据我正在处理的用户实例使用其中之一。

我不习惯使用继承 分解代码,尤其是在服务层。你们 Spring 研究员看到更好的方法了吗?

最佳答案

在这种情况下考虑继承组合之前,您应该问自己一些基本问题,and in general :

  1. 所有 用户管理器都是 BaseUserManager 吗?在任何可能的情况下,这都是 IS-A 关系吗?
  2. 在所有涉及用户管理器的地方公开 BaseUserManager 公共(public) API 是否有意义?
  3. BaseUserManager 是否有单一职责?

如果答案是肯定的,那么继承就是正确的方法。否则,您可能应该重新设计成几个更小的组件,并将 PowerUserManager 和 SimpleUserManager 视为服务外观。

关于java - 在 spring 服务层使用继承是最佳实践吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15147792/

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