享元模式

来源:互联网 发布:淘宝售后客服工作总结 编辑:程序博客网 时间:2024/06/05 19:35
import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Vector;public class ConnectionPool {  private Vector<Connection>pool = null;  private String url = "jdbc:mysql://localhost:3306/test";  private String username = "root";    private String password = "root";    private String driverClassName = "com.mysql.jdbc.Driver";    private int poolSize = 100;    private static ConnectionPool instance = null;    Connection conn = null;      /*构造方法,做一些初始化工作*/    private ConnectionPool() {        pool = new Vector<Connection>(poolSize);        for (int i = 0; i < poolSize; i++) {            try {                Class.forName(driverClassName);                conn = DriverManager.getConnection(url, username, password);                pool.add(conn);            } catch (ClassNotFoundException e) {                e.printStackTrace();            } catch (SQLException e) {                e.printStackTrace();            }        }    }    /* 用完后返回连接到连接池 */    public synchronized void release() {        pool.add(conn);    }    /* 分配连接池中的一个数据库连接 */    public synchronized Connection getConnection() {        if (pool.size() > 0) {            Connection conn = pool.get(0);            pool.remove(conn);            return conn;        } else {            return null;        }    }  }

享元模式主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用。例如:JDBC连接池!  真的这种设计模式很nice!

——贴上自己喜欢的代码!

0 0