Sto usando una grande interfaccia con circa 50 metodi per accedere a un database. L'interfaccia è stata scritta da un mio collega. Ne abbiamo discusso:
Io: 50 metodi è troppo. È un odore di codice.
Collega: cosa dovrei fare al riguardo? Vuoi l'accesso al DB: ce l'hai.
Io: Sì, ma non è chiaro e difficilmente mantenibile in futuro.
Collega: OK, hai ragione, non è bello. Come dovrebbe essere l'interfaccia allora?
Io: che ne dici di 5 metodi che restituiscono oggetti che hanno, come, 10 metodi ciascuno?
Mmmh, ma non sarebbe lo stesso? Questo porta davvero a una maggiore chiarezza? Vale la pena?
Ogni tanto mi trovo in una situazione in cui voglio un'interfaccia e la prima cosa che mi viene in mente è l'interfaccia one, big . C'è un modello di progettazione generale per questo?
Aggiornamento (risposta al commento di SJuan):
Il "tipo di metodi": è un'interfaccia per il recupero dei dati da un database. Tutti i metodi hanno la forma (pseudocodice)
List<Typename> createTablenameList()
I metodi e le tabelle non sono esattamente in una relazione 1-1, l'enfasi è più sul fatto che ottieni sempre una sorta di lista proveniente da un database.