Я використовую великий інтерфейс з приблизно 50 методами для доступу до бази даних. Інтерфейс написав мій колега. Ми обговорювали це:
Я: 50 методів - це занадто багато. Це кодовий запах.
Колега: Що з цим робити? Ви хочете отримати доступ до БД - у вас є.
Я: Так, але це незрозуміло і важко піддаватися подальшому.
Колега: Гаразд, ви праві, це не приємно. Як повинен виглядати інтерфейс тоді?
Я: Як щодо 5 методів, які повертають об'єкти, які мають, наприклад, 10 методів кожен?
Ммм, але хіба це не було б саме? Чи справді це призводить до більшої ясності? Чи варто докладати зусиль?
Раз у раз я знаходжусь у ситуації, коли мені хочеться інтерфейс, і перше, що спадає на думку, - це один великий інтерфейс. Чи існує загальна модель дизайну для цього?
Оновлення (відповідаючи на коментар SJuan):
"Вид методів": це інтерфейс для отримання даних із бази даних. Усі методи мають вигляд (псевдокод)
List<Typename> createTablenameList()
Методи та таблиці знаходяться не у співвідношенні 1-1, акцент робиться більше на тому, що ви завжди отримуєте якийсь список, який походить із бази даних.
List<WeatherDataRecord> createWeatherDataTable() {db.open(); return db.select("*", "tbl_weatherData");}
UserDao
і aCustomerDao
і aProductDao
)