Я использую большой интерфейс с около 50 методов для доступа к базе данных. Интерфейс был написан моим коллегой. Мы обсуждали это:
Я: 50 методов это слишком много. Это кодовый запах.
Коллега: что мне с этим делать? Вы хотите доступ к БД - у вас есть.
Я: Да, но это неясно и вряд ли будет исправимо в будущем.
Коллега: хорошо, вы правы, это не приятно. Как должен выглядеть интерфейс?
Я: Как насчет 5 методов, которые возвращают объекты, которые имеют, например, 10 методов каждый?
Ммм, но разве это не будет так же? Это действительно приводит к большей ясности? Стоит ли усилий?
Время от времени я нахожусь в ситуации, когда мне нужен интерфейс, и первое, что приходит на ум, это один большой интерфейс. Есть ли общий шаблон дизайна для этого?
Обновление (в ответ на комментарий Сюаня):
«Методы»: это интерфейс для извлечения данных из базы данных. Все методы имеют вид (псевдокод)
List<Typename> createTablenameList()
Методы и таблицы не находятся точно в отношении 1-1, акцент делается больше на том факте, что вы всегда получаете какой-то список, который поступает из базы данных.
List<WeatherDataRecord> createWeatherDataTable() {db.open(); return db.select("*", "tbl_weatherData");}
UserDao
и aCustomerDao
и aProductDao
)