Korzystam z dużego interfejsu z około 50 metodami dostępu do bazy danych. Interfejs został napisany przez mojego kolegę. Omówiliśmy to:
Ja: 50 metod to za dużo. To zapach kodu.
Kolega: Co mam z tym zrobić? Chcesz dostępu do DB - masz go.
Ja: Tak, ale jest niejasne i trudno je utrzymać w przyszłości.
Kolega: OK, masz rację, to nie jest miłe. Jak powinien wyglądać interfejs?
Ja: A może 5 metod zwracających obiekty, które mają po 10 metod każda?
Mmm, ale czy to nie będzie to samo? Czy to naprawdę prowadzi do większej przejrzystości? Czy warto?
Od czasu do czasu jestem w sytuacji, w której chcę interfejs, a pierwszą rzeczą, która przychodzi mi na myśl, jest jeden, duży interfejs. Czy istnieje dla tego ogólny wzór?
Aktualizacja (w odpowiedzi na komentarz SJuan):
„Rodzaj metod”: Jest to interfejs do pobierania danych z bazy danych. Wszystkie metody mają postać (pseudokod)
List<Typename> createTablenameList()
Metody i tabele nie są dokładnie w relacji 1-1, większy nacisk kładziony jest na fakt, że zawsze otrzymujesz jakąś listę pochodzącą z bazy danych.
List<WeatherDataRecord> createWeatherDataTable() {db.open(); return db.select("*", "tbl_weatherData");}
UserDao
i aCustomerDao
oraz aProductDao
)