MENU

《Java设计模式及实践》第二章读书笔记 对象池模式

May 15, 2022 • 《Java设计模式及实践》

对象池模式

当我们处理封装外部资源的对象时,对象的创建操作会耗费很多资源,比如数据库的连接。

解决方案是重用和共享这些创建成本比较高的对象,这就可以用到连接池模式。

对象池类的组成
  • 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);        //回收资源
    }
}

Sundae97/Design-Patterns-Java