Estoy usando una interfaz grande con aproximadamente 50 métodos para acceder a una base de datos. La interfaz ha sido escrita por un colega mío. Discutimos esto:
Yo: 50 métodos es demasiado. Es un olor a código.
Colega: ¿Qué debo hacer al respecto? Desea el acceso a la base de datos, lo tiene.
Yo: Sí, pero no está claro y difícil de mantener en el futuro.
Colega: OK, tienes razón, no es agradable. ¿Cómo debería ser la interfaz entonces?
Yo: ¿Qué tal 5 métodos que devuelven objetos que tienen, como, 10 métodos cada uno?
Mmmh, pero ¿no sería esto lo mismo? ¿Esto realmente conduce a más claridad? ¿Vale la pena el esfuerzo?
De vez en cuando me encuentro en una situación en la que quiero una interfaz y lo primero que me viene a la mente es una gran interfaz. ¿Hay un patrón de diseño general para esto?
Actualización (en respuesta al comentario de SJuan):
El "tipo de métodos": es una interfaz para obtener datos de una base de datos. Todos los métodos tienen la forma (pseudocódigo)
List<Typename> createTablenameList()
Los métodos y las tablas no están exactamente en una relación 1-1, el énfasis está más en el hecho de que siempre obtienes algún tipo de lista que proviene de una base de datos.
List<WeatherDataRecord> createWeatherDataTable() {db.open(); return db.select("*", "tbl_weatherData");}
UserDao
y unaCustomerDao
y unaProductDao
)