私が使用するコードベースは、MDB2から継承するデータベースクラスです。これは、使用中のMVCフレームワーク(カスタムビルド)の基礎を形成し、モデルは順番にdbから継承されます。継承の代わりにカプセル化するクラスを変更する
あなたの一部が気づいたと思いますが、これはむしろ大きな問題につながります。モデルをインスタンス化するたびに、新しいデータベース接続が作成されます。これは明らかにかなり無駄です。また、トランザクションが意図したとおりに使用できないことを意味します。トランザクションがモデルの1つのインスタンスで開始された場合、その影響はコミットが発生するまで他のインスタンスには見えません。
私の計画では、dbクラスを継承するのではなく、MDB2をカプセル化するように変更し、そのシングルトン機能を使用してMDB2のインスタンスを1つ維持します。
しかし、MDB2は多くのメソッドを備えた大きなライブラリであり、コードベースの上位にはMDB2メソッドにアクセスできることが多くあります。
MDB2クラスをカプセル化して上位レイヤーを変更せずに呼び出しを渡す方法はありますか?MDB2のすべてのメソッドにラッパーメソッドを記述する必要はありませんか?
サンプルモデルクラスを見せてもらえますか?そのため、それらがどの程度結合されているかを確認できますか? – Gordon