私が手渡されたコードベースは、MDB2から継承するデータベースクラスを備えています。これは、使用中のMVCフレームワーク(カスタムビルドの問題)の基礎を形成し、モデルはdbから継承します。
お気づきの方もいらっしゃると思いますが、これはかなり大きな問題につながります。モデルをインスタンス化するたびに、新しいデータベース接続が作成されます。これは明らかにかなり無駄です。また、モデルの1つのインスタンスでトランザクションが開始された場合、コミットが発生するまでその影響は他のインスタンスには表示されないため、意図したとおりにトランザクションを使用できないことも意味します。
私の計画は、dbクラスを変更してMDB2を継承するのではなくカプセル化し、シングルトン機能を介してMDB2の単一インスタンスを維持することです。
ただし、MDB2は多くのメソッドを備えた大きなライブラリであり、コードベースの上位にある多くのものは、MDB2メソッドにアクセスできるかどうかに依存します。
MDB2クラスをカプセル化し、上位層を変更せずに、またMDB2のすべてのメソッドのラッパーメソッドを作成せずに、MDB2クラスに呼び出しを渡す方法はありますか?