Klingt nach dem, was Sie beschrieben haben, vernünftig, obwohl der wahre Test kommen wird, wenn Sie anfangen, es ernsthaft zu erweitern.
Normalerweise baue ich einen Kern aus drei Klassen auf:
- ein Datenbank-Handler
- ein generischer Objekthandler
- ein generischer Sammlungs-Handler
Jede Tabelle erhält eine von der Objektklasse abgeleitete Klasse, um eine Zeile in der Tabelle darzustellen, und eine von der Sammlung abgeleitete Klasse, die einen Teil oder die gesamte Tabelle darstellt und einzelne Objekte wie angefordert zurückgibt. Es gibt auch eine statische "Registrierungs"-Funktion, um alle notwendigen Informationen (Tabellenname, gültige Felder usw.) einmal für jede Klasse einzurichten.
Manchmal ist eine Sammlungsklasse auch ein Objekt für eine andere Tabelle. Die generischen Objekte und der Registrierungsmechanismus, den ich vor Ewigkeiten geschrieben habe, handhaben dies nahtlos.