J'utilise une grande interface avec environ 50 méthodes pour accéder à une base de données. L'interface a été écrite par un de mes collègues. Nous en avons discuté:
Moi: 50 méthodes, c'est trop. C'est une odeur de code.
Collègue: Que dois-je faire à ce sujet? Vous voulez l'accès DB - vous l'avez.
Moi: Oui, mais ce n'est pas clair et difficilement maintenable à l'avenir.
Collègue: OK, vous avez raison, ce n'est pas sympa. À quoi devrait ressembler l'interface alors?
Moi: que diriez-vous de 5 méthodes qui retournent des objets qui ont, comme, 10 méthodes chacun?
Mmmh, mais ça ne serait pas pareil? Cela conduit-il vraiment à plus de clarté? Cela en vaut-il la peine?
De temps en temps, je suis dans une situation où je veux une interface et la première chose qui me vient à l'esprit est une grande interface. Existe-t-il un modèle de conception général pour cela?
Mise à jour (répondant au commentaire de SJuan):
Le "genre de méthodes": c'est une interface pour récupérer les données d'une base de données. Toutes les méthodes ont la forme (pseudocode)
List<Typename> createTablenameList()
Les méthodes et les tableaux ne sont pas exactement dans une relation 1-1, l'accent est davantage mis sur le fait que vous obtenez toujours une sorte de liste provenant d'une base de données.
List<WeatherDataRecord> createWeatherDataTable() {db.open(); return db.select("*", "tbl_weatherData");}
UserDao
et aCustomerDao
et aProductDao
)