我有一个应用程序,需要两个静态缓存,一个是短期的,一个是长期的。
所以我有一个看起来像这样的抽象类。我的想法是,我将创建两个从这个抽象类继承的类,从而获得我的两个静态类。
但是,我突然想到,当我可以使用一个对象时,我却创建了 3 个对象。但我不知道该怎么做。我想要某种工厂类吗?
有人可以在这里建议一个合适的模式吗?
public abstract class myCache {
static Map<String, Object> ObjectCache = new ConcurrentHashMap<String, Object>();
public void put(String Key, T cmsObject) {
//
}
public xxx static get(String objectKey, Class<T> type) {
//
}
}
最佳答案
您的设计有缺陷:
- 缓存就是缓存 - 让缓存类负责缓存...仅
- 除非对象数量很大(1000 个),否则不要让“创建的对象数量”影响您的设计
- 只有缓存类的用户需要了解或关心缓存的使用方式
因此:
public class MyClass {
private static MyCache shortTermCache = new MyCache();
private static MyCache longTermCache = new MyCache();
}
您可以考虑将生存时间参数传递到缓存类构造函数中,让它在一定时间后管理清除。
关于java - 静态缓存 - 两个 "Instances",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12467707/