Nghe có vẻ hợp lý từ những gì bạn đã mô tả, mặc dù thử nghiệm thực sự sẽ đến khi bạn bắt đầu nghiêm túc mở rộng nó.
Tôi thường xây dựng một lõi gồm ba lớp:
- một trình xử lý cơ sở dữ liệu
- một trình xử lý đối tượng chung chung
- một trình xử lý bộ sưu tập chung
Mỗi bảng lấy một dẫn xuất từ lớp đối tượng để đại diện cho một hàng trong bảng và một lớp dẫn xuất từ tập hợp đại diện cho một số hoặc tất cả bảng và sẽ trả về các đối tượng riêng lẻ theo yêu cầu. Ngoài ra còn có một chức năng "đăng ký" tĩnh để thu thập tất cả các thông tin cần thiết (tên bảng, các trường hợp lệ, v.v.) một lần cho mỗi lớp.
Đôi khi, một lớp tập hợp cũng là một đối tượng cho một bảng khác. Các đối tượng chung chung và cơ chế đăng ký mà tôi đã viết từ nhiều năm trước xử lý điều này một cách liền mạch.