@Biaci_Anj

Как правильно поступить в данной ситуации наследования от GenericInterface?

Делаю тестовый проект, есть интерфейс GenericDao, в нем CRUD методы.
create()
findAll()
update()
delete()


Но вот в каждом DAO отличаются методы find ( иногда findPaginated - возвращает страницу, иногда findPaginatedSorted - отсортированная страница, иногда просто findSorted - отсортированный список ).

Как правильно поступить в такой ситуации?
Думал над несколькими вариантами:
1. Убрать метод findAll() из GenericInterface
2. Реализовать, но в теле кидать new UnsuportedOperationException
3. Реализовать этот метод ( при том, что он никогда не используется
  • Вопрос задан
  • 37 просмотров
Решения вопроса 1
@Akela_wolf
Extreme Programmer
Интерфейс не должен решать за потребителя - что используется, что не используется. Поэтому вариантов тут на самом деле такие:
  1. Убрать. Вполне нормальный вариант, если это просто общая часть специализированных DAO.
  2. Реализовать (используется - не используется это неважно)
  3. Дополнить его параметрами, позволяющими потребителю решать что он хочет получить - конкретную страницу, весь список, задавать опции сортировки и т.д., то есть убрать необходимость в специализированных методах.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы