:シングルトン(またはMultiton)柄の経過時間に基づいて
private static ConcurrentHashMap<String, LocatorDAO> instances = new ConcurrentHashMap<String, LocatorDAO>();
public static LocatorDAO getInstance(String page String field)
{
String instanceID = page + " " + field;
LocatorDAO result = instances.get(instanceID);
if (result == null)
{
LocatorDAO m = new LocatorDAO(page, field);
result = instances.putIfAbsent(instanceID, m);
if (result == null)
result = m;
}
return result;
}
私はインスタンス化することによって、このデザインを変更したいです300秒ごとに新しいインスタンスが作成されます。つまり、以前のインスタンスをインスタンス化した時点から300秒が経過した場合、インスタンスを再度インスタンス化したい(インスタンスがインスタンス化されなかった場合)。
どうすればいいですか?
注:現在のコードを簡略化するために、computeIfAbsentを使用できます。例えば、以下を参照してください:http://stackoverflow.com/a/18149547/829571 – assylias
あなたの 'HashMap'にどれだけの柔軟性があるのかは分かりません。それはあなたのコードの残りの部分と密接に結びついていますか?もしそうなら、あなたは 'getInstance'の中で静的ローカルタイムスタンプを使うように強制されますか? – jiveturkey