Brzmi rozsądnie z tego, co opisałeś, chociaż prawdziwy test przyjdzie, gdy zaczniesz go poważnie rozszerzać.
Zwykle buduję rdzeń z trzech klas:
- obsługa bazy danych
- ogólny program obsługi obiektów
- ogólny program obsługi kolekcji
Każda tabela otrzymuje jedną pochodną z klasy obiektów, która reprezentuje jeden wiersz w tabeli, oraz klasę pochodną z kolekcji, która reprezentuje część lub całość tabeli i zwróci poszczególne obiekty zgodnie z żądaniem. Dostępna jest również statyczna funkcja „rejestracji” umożliwiająca jednokrotne skonfigurowanie wszystkich niezbędnych informacji (nazwa tabeli, prawidłowe pola itp.) dla każdej klasy.
Czasami klasa kolekcji jest również obiektem dla innej tabeli. Ogólne obiekty i mechanizm rejestracji, który napisałem wieki temu, bezproblemowo sobie z tym poradzą.