私の現在の設計パターンには、1 つのコンビニエンス クラスに多数のデータベース アクセス メソッドが含まれています。インスタンス化されると、必要な接続を取得し、メソッドを待機します。
その接続で10個のメソッドを実行しようとしているときに単一の接続を開く方が、10個の個別のメソッドごとにその接続を開いたり閉じたりするよりも優れていると私は考えていました。
ただし、これらの接続を閉じていないことに気付きました。私は、戻ってメソッドへのすべての呼び出しをリファクタリングし、closeConnections
すべてのアクティブな接続を解放するメソッドを含める必要があるという結論に達しました。
私の質問は次のとおりです。適切な設計慣行に従って、すべてのメソッドで接続を開いたり閉じたりする必要がありますか (これにはかなりのオーバーヘッドが発生します)、またはcloseConnections
メソッドへの呼び出しを使用してコンビニエンス クラスへの呼び出しをリファクタリングする必要があります。
疑似コード
class convenience{
public contructor(){
a = new Connection();
}
public void methodA(){
/* do stuff */
}
public void methodB(){
/* do stuff */
}
public void methodC(){
/* do stuff */
//should I do this?
a = new Connection();
/* do stuff */
a.close();
}
public void close(){
//or this
a.close();
}
}