zoukankan      html  css  js  c++  java
  • 23种设计模式之享元模式代码实例

    享元模式的主要目的是实现对象的共享,在Java的各种池技术中用得比较多,

    如线程池,数据库连接池等。当一个客户端请求时,工厂需要检查当前对象池中是否有符合条件的对象,如果有,就返回已经存在的对象,如果没有,则创建一个新对象。

    这样可以节约内存。

    数据库连接池:

        public class ConnectionPool {  
              
            private Vector<Connection> pool;  
              
            /*公有属性*/  
            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;  
                }  
            }  
        }  
  • 相关阅读:
    17. Letter Combinations of a Phone Number
    16. 3Sum Closest
    15. 3Sum
    14. Longest Common Prefix
    13. Roman to Integer
    12. Integer to Roman
    11. Container With Most Water
    10. Regular Expression Matching
    9. Palindrome Number
    8. String to Integer (atoi)
  • 原文地址:https://www.cnblogs.com/longhaolove/p/7892129.html
Copyright © 2011-2022 走看看