Also sagen wir, wir haben ein paar Entitäten, die wir mit DAO-Objekten persistieren wollen. So setzen wir die richtige Schnittstelle, so dass wir mitDAO Designmuster
class JdbcUserDao implements UserDao{
//...
}
class JdbcAddressDao implements AddressDao{
//...
}
am Ende Also, wenn ich von JDBC zu JPA wechseln persistance Implementierungen in der Lage sein wollen (zum Beispiel), und umgekehrt, würde ich brauchen, um JPAUserDao und JPAAddressDao ... Wenn ich 20 Entitäten hätte und entschied, Implementierungen zu wechseln (mit DI-Container), müsste ich jede Jdbc-Implementierung mit JPA in Code umstellen.
Nun könnte es sein, dass ich das falsch verstanden, wie DAO funktioniert, aber ... Wenn ich nur
class JdbcDaoImpl implements UserDao,AddressDao{
//...
}
ich dann die JDBC-Implementierungen alle in einer Klasse hatte, und Switching-Implementierungen wären ein Stück sein Kuchen. Außerdem ist DaoImpl count gleich der Anzahl der Dao-Schnittstellen. Warum gruppieren Sie sie nicht einfach nach Implementierung (jdbc, JTA, JPA ...) und haben alles unter einer Klasse?
Vielen Dank im Voraus.
Aus dem gleichen Grunde, warum Sie Ihre Anwendung in einer großen 'main()' Methode nicht Code aus: Trennung von Bedenken. (Übrigens hindert Sie niemand daran, eine abstrakte 'JdbcDaoBase' zu schreiben, die gemeinsamen Code enthält und diese in Ihren 'Dao's erweitert). – rsp
Warum sollte es einfacher sein, 500 Methoden in einer Klasse als in 100 Klassen zu ersetzen? –