У меня есть два бобы обслуживания, которые называются PowerUserManager
и SimpleUserManager
. Оба аннотированных класса @Service
имеют около 20% общего кода.Лучше всего использовать наследование в слое весеннего сервиса?
Я создал дерево наследования с общим аннотация класс (BaseUserManager
), чтобы уменьшить избыточность между двумя классами.
BaseUserManager
|
---------------
| |
PowerUserManager SimpleUserManager
Тогда в моей или любой другой клиентский класс @Controller
, я использую @Autowired
аннотацию вводить как PowerUserManager
и SimpleUserManager
и я использую один из них в зависимости от экземпляра пользователя я имею дело с.
Я не комфортно, используя наследование факторизовать код особенно в службы слоя. У вас, весёлые парни, есть лучший способ сделать это?
Являются ли общедоступные интерфейсы одинаковыми с различным поведением или же они имеют различные методы, которые применяются только к каждому типу пользователя? – Romski
@Romski PowerUserManager имеет различные методы, которые применяются только к PowerUser – webpat