Насколько мне известно, методы сервиса должны принимать и возвращать DTO. Получается, что в контроллере при вызове методов из сервиса иногда мне приходится писать что-то вроде примеров 1,2
messageService.findByRoomAndUser(RoomDTO.forId(16),UserDTO.forId(10));//1
messageService.findByRoomAndUser(roomDTO,userDTO);//2
messageService.findByRoomAndUser(16,10);//3
messageService.findByRoomAndUser(roomDTO.getId(),userDTO.getId());//4
В 1 примере сложнее перепутать местами параметры, что плюс. Стоит ли создавать новые обьекты как в примере 1 чтобы не писать код вроде:
MessageDTO findByRoomAndUser(RoomDTO room, UserDTO user) {
return findByRoomAndUser(room.getId(),user.getId());
}
MessageDTO findByRoomAndUser(Long roomId, Long userId) {
//код функции
}
Или все-же делать методы, которым нужен только идентификатор, согласно примеру 3, а при их вызове для объектов использовать getId()
?
Я бы на вашем месте сделал разделение:
1. RoomDTO findByRoom(id)
и
2. UserDTO findByUser(id)
,
а после найденных RoomDTO
и UserDTO
передать, например, в конструктор -
return new MessageDTO(room, user)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Возможно ли в Java, как в Word, записать число в степени в переменную типа StringПри этом считать его? Знаю что возможно записать степень числа как:
Есть такая задачаПри определенном разрешении экрана нужно вывести определенный код html