设计模式之享元模式/共享模式(Flyweight)
享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用。
应用场景
- JDBC连接池
- 对象池
核心在于复用
Java设计模式-享元模式(Flyweight)
这里简化版实现JDBC连接池
public class MyConnection {
}
public class MyConnectionPool {
private BlockingQueue<MyConnection> pool = new ArrayBlockingQueue<MyConnection>(100);
public MyConnectionPool()
{
for(int i = 0; i < 100; i ++)
{
pool.add(new MyConnection());
}
}
public MyConnection getConnection() throws InterruptedException
{
return pool.take();
}
public void close(MyConnection conn) throws InterruptedException
{
pool.put(conn);
}
}
当前实际过程中,肯定要比这个复杂的多!