Hejka, prośba o pomoc.
Powiedzmy, że mamy w kilku serwisach tą są samą funkcję sprawdzającą, np:
public void findUser(UserPrincipal userPrincipal) {
userRepository.findByIdAndEmail(userPrincipal.getId(), userPrincipal.getEmail()).orElseThrow(()->
new ResourceNotFoundException("UserProfile", "ID", userPrincipal.getUsername()));
}
W jaki sposób byście zrefaktorowali powyższy kod, żeby wydzielić gdzieś wyżej? Zwykły interfejs z metodą domyślną ?
Jako dodatek powiedzmy, że mamy kilka metod w serwisie. W każdej z tej metod na wstępie jest wywoływane findUser. Zostawić to w taki sposób, czy najlepiej to jakoś wszystko wydzielić wyżej ? Pytam, bo chcę zastosować dobrą praktykę, ale równocześnie nie chcę popaść w skrajność i "przedobrzyć"
Z pomysłów to AOP vs Interfejsy ?
Choć nie wiem, czy dobrze rozumiem implementacje w tym przypadku AOP:
- tworzę osobną klasę do której insertuje wszystkie metody, które będą wykorzystywały findUser ? Jakoś to później to opisać, żeby połapać się w kodzie ?