次のクラスがシングルトンであると仮定します
public class myDAO {
//determines the tableName and Id column names to based on itemType
private String itemType;
public void setItemType(String itemType) {...}
//Following methods use itemType to customize their queries
public boolean findObj(int id){...}
public boolean deleteObj(int id){...}
public boolean updateObj(Obj obj){...}
//etc...
}
コードは最近セッターでリファクタリングされたため、DAOに何らかの状態が与えられました。singleton-scope
これはSpringの構成ファイルのように構成されていることがわかります。これが潜在的な競合状態につながる可能性があるという奇妙な感覚があります。あれは正しいですか?
これが実際に当てはまるかどうかは本当にわかりませんが、それを理解するのは悪夢のような状況になるでしょう。それが本当なら私見です。これが最善の設計ではない可能性があることはわかっていますが、並行スレッドが異なるをクエリしているときに、これが競合状態につながる可能性があるかどうかを知りたかっただけitemTypes
です。スコープをに変更することを考えていましprototype
たが、この場合に本当に必要かどうかはわかりません。