Звучи разумно от това, което описахте, въпреки че истинският тест ще дойде, когато започнете сериозно да го разширявате.
Обикновено изграждам ядро от три класа:
- манипулатор на база данни
- генеричен манипулатор на обект
- генеричен манипулатор на колекция
Всяка таблица получава един, получен от класа на обекта, за да представлява един ред в таблицата, и клас, извлечен от колекцията, който представлява част или цялата таблица и ще върне отделни обекти, както е поискано. Има и статична функция за "регистрация" за настройка на цялата необходима информация (име на таблица, валидни полета и т.н.) веднъж за всеки клас.
Понякога клас на колекция също е обект за друга таблица. Генеричните обекти и механизмът за регистрация, който написах преди векове, се справят безпроблемно с това.