设计模式之享元模式/共享模式(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);
	}
}

当前实际过程中,肯定要比这个复杂的多!