下面我已经实现了该Multiton
模式,但我认为这个问题同样适用于该Singleton
模式:
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 秒,我想再次实例化它(或者如果该实例从未实例化)。
怎么可能做到这一点?