Låter rimligt utifrån det du har beskrivit, även om det sanna testet kommer när du på allvar börjar utöka det.
Jag brukar bygga en kärna av tre klasser:
- en databashanterare
- en generisk objekthanterare
- en generisk samlingshanterare
Varje tabell får en härledd från objektklassen för att representera en rad i tabellen, och en klass som härleds från samlingen som representerar en del av eller hela tabellen och kommer att returnera individuella objekt efter önskemål. Det finns också en statisk "registrerings"-funktion för att ställa in all nödvändig information (tabellnamn, giltiga fält, etc) en gång för varje klass.
Ibland är en samlingsklass också ett objekt för en annan tabell. De generiska objekten och registreringsmekanismen jag skrev för evigheter sedan hanterar detta sömlöst.