对象池模式
当我们处理封装外部资源的对象时,对象的创建操作会耗费很多资源,比如数据库的连接。
解决方案是重用和共享这些创建成本比较高的对象,这就可以用到连接池模式。
对象池类的组成
- ResourcePool(资源池类):用于封装逻辑的类。用来保存和管理资源的类。
- Resource(资源类):用于封装特定资源的类。资源类通常被资源池应用,因此只要资源池不重新分配,它们就永远不会被回收。
public class ObjectPool {
private List<Resource> available = new ArrayList<>();
public Resource acquireResource(){
if(available.size() <= 0){
Resource resource = new Resource();
return resource;
}else{
return available.remove(0);
}
}
public void releaseResource(Resource resource){
available.add(resource);
}
}
//Main.java
public class Main {
public static void main(String[] args) {
ObjectPool objectPool = new ObjectPool();
Resource resource = objectPool.acquireResource();
//... do Something
objectPool.releaseResource(resource); //回收资源
}
}