あなたが説明したことからは合理的に聞こえますが、真剣に拡張し始めると真のテストが行われます。
私は通常、3つのクラスのコアを構築します:
- データベースハンドラー
- 汎用オブジェクトハンドラー
- 汎用コレクションハンドラー
各テーブルは、テーブル内の1つの行を表すオブジェクトクラスから派生したクラスと、テーブルの一部またはすべてを表し、要求に応じて個々のオブジェクトを返すコレクションから派生したクラスを取得します。クラスごとに必要なすべての情報(テーブル名、有効なフィールドなど)を一度に設定するための静的な「登録」機能もあります。
コレクションクラスが別のテーブルのオブジェクトである場合もあります。私が何年も前に書いた汎用オブジェクトと登録メカニズムは、これをシームレスに処理します。