使用enum枚举实现单例模式

≡放荡痞女 提交于 2020-02-27 07:50:54

枚举enum和静态代码块的特性相似,在使用枚举类时,构造方法会被自动调用,也可以应用这个特性实现单例设计模式。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class MyObject {

    public enum MyEnumSingleton{
        connectionFactory;
        private Connection connection;
        private MyEnumSingleton() {
            try {
                System.out.println("调用了MyObject构造");
                String url = "jdbc:sqlserver://localhost:1079;databaseName=ghydb";
                String username = "sa";
                String password = "";
                String driverClass = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
                Class.forName(driverClass);
                connection = DriverManager.getConnection(url,username,password);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        public Connection getConnection(){
            return connection;
        }
    }
    public static Connection getConnection(){
        return MyEnumSingleton.connectionFactory.getConnection();
    }
}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!