Что я должен сделать, чтобы избежать дублирования кода в моих методах в Service Layer? - PullRequest
0 голосов
/ 03 января 2019

У меня проблема с моим кодом. У меня есть класс обслуживания с такими методами, как добавление, обновление и т. Д. В каждом методе я получаю информацию, такую ​​как аутентификация, имя пользователя для аутентификации, имя пользователя, объект пользователя и т. Д., И я использую эту информацию для добавления новых объектов в свою базу данных, не передавая их вручную, но по токену. после входа Похоже ниже

 Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
 UserPrinciple userPrinciple = (UserPrinciple) authentication.getPrincipal();
 String username = userPrinciple.getUsername();

Я использую этот код в трех методах в своем классе обслуживания. Что я должен сделать, чтобы уменьшить его до одного использования?

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Измените общий код / ​​поведение метода и вызовите этот метод, когда это необходимо.В этом случае просто следуйте советам @MZxFK.Избыточность - открытый враг написания хорошего кода

0 голосов
/ 03 января 2019

Просто переместите

Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
UserPrinciple userPrinciple = (UserPrinciple) authentication.getPrincipal();
String username = userPrinciple.getUsername();

к отдельному методу.

Пример:

private String getUserName() {
    Authentication authentication = 
    SecurityContextHolder.getContext().getAuthentication();
    UserPrinciple userPrinciple = (UserPrinciple) authentication.getPrincipal();
    return userPrinciple.getUsername();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...