定义:享元模式又称轻量级模式,是对象池的一种实现。我个人的理解就是共享元数据,将常用的对象装到容器里,以便使用的人可以直接使用,而节省了创建、销毁所消耗的资源。
应用场景:连接池、线程池等。代码:
public class ConnectionPool {
private Vector<Connection> pool;
private int poolSize = 10;
private String url = "";
private String userName = "";
private String passWord = "";
private String driverClassFroName = "";
public ConnectionPool() {
pool = new Vector<Connection>(poolSize);
try {
Class.forName(driverClassFroName);
for(int i = 0; i < poolSize; i++){
Connection conn = DriverManager.getConnection(url, userName, passWord);
pool.add(conn);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public synchronized Connection getConnection(){
if(pool.size() > 0){
Connection connection = pool.get(0);
pool.remove(connection);
return connection;
}
return null;
}
public synchronized void release(Connection connection){
pool.add(connection);
}
}
上述实例,就是一次性先把连接建立好,然后需要用的人直接调用,用完也不要丢掉,调用release()方法把它回收,这样就不需要每次要使用的时候都从头开始建立连接,浪费资源。
优点:
1.减少对象的创建,降低内存中对象的数量,减低系统的内存消耗,提高效率。
2.减少内存之外的其他资源占用。
缺点:
1.关注内、外部状态、关注线程安全问题。
2.使系统、程序的逻辑复制化。
来源:CSDN
作者:hywang94
链接:https://blog.csdn.net/qq_32285039/article/details/104728394