Ich verwende eine große Schnittstelle mit ungefähr 50 Methoden, um auf eine Datenbank zuzugreifen. Die Schnittstelle wurde von einem Kollegen von mir geschrieben. Wir haben das besprochen:
Ich: 50 Methoden sind zu viel. Es ist ein Code-Geruch.
Kollege: Was soll ich dagegen tun? Sie möchten den DB-Zugriff - Sie haben ihn.
Ich: Ja, aber es ist unklar und in Zukunft kaum zu warten.
Kollege: OK, Sie haben Recht, es ist nicht schön. Wie soll die Schnittstelle dann aussehen?
Ich: Wie wäre es mit 5 Methoden, die Objekte zurückgeben, die jeweils 10 Methoden haben?
Mmmh, aber wäre das nicht dasselbe? Führt dies wirklich zu mehr Klarheit? Lohnt sich die Mühe?
Hin und wieder bin ich in einer Situation, in der ich eine Schnittstelle möchte und das erste, was mir in den Sinn kommt, ist eine große Schnittstelle. Gibt es dafür ein allgemeines Entwurfsmuster?
Update (als Antwort auf SJuans Kommentar):
Die "Art von Methoden": Es ist eine Schnittstelle zum Abrufen von Daten aus einer Datenbank. Alle Methoden haben die Form (Pseudocode)
List<Typename> createTablenameList()
Methoden und Tabellen stehen nicht genau in einer 1-1-Beziehung, der Schwerpunkt liegt eher auf der Tatsache, dass Sie immer eine Art Liste erhalten, die aus einer Datenbank stammt.
List<WeatherDataRecord> createWeatherDataTable() {db.open(); return db.select("*", "tbl_weatherData");}
UserDao
und aCustomerDao
und aProductDao
)