@grsm

Насколько целесообразно применение «сервисного слоя» из паттерна «Фасад» в данном случае?

Здравствуйте в Spring Boot поднимается рест контроллер с DAO классом, который будет получать данные из базы. Насколько целесообразно введение промежуточного слоя @Service?
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
azerphoenix
@azerphoenix Куратор тега Spring
Java Software Engineer
Добрый день. Я бы сказал, что есть смысл использования.
Вот, смотрите допустим у вас есть User & UserDAO.
Когда вы отдаете на клиент данные желательно конвертировать их в DTO. Соответственно, вам нужен например, 1 конвертер UserConverter<S,T>, а также UserService, в котором происходит вызов конвертера.

Вот, пример псевдокодом:
@Entity
User {
   long id;
   String username;
   String password;
}


@Repository
UserDAO {
   List<User> findAll();
}


UserResponse {
   long id;
   String username;
}


UserConverter implements Converter<User, UserResponse> {
   convert(User user) {
      UserResponse userResponse = new UserResponse();
      userResponse.setId(user.getId);
      userResponse.setUsername(user.getUsername);
   }
}


@Service
UserService {

UserDAO userDAO;
UserConverter userConverter;

List<UserResponse> getAllUsers() {
   List<User> users = userDAO.findAll();
   List<UserResponse> usersList = users.stream().map(user -> userConverter.convert(user)).collect(Collectors.toList());
   return usersList;
}

}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы