单例模式与多线程2

来源:互联网 发布:中国最新cpi数据2017年 编辑:程序博客网 时间:2024/06/06 03:33

接 单例模式与多线程

1.6 使用static 代码块实现单例模式

  由于静态代码块在类加载时就已经执行了,所以可以应用静态代码块的该特性来设计单例模式。

package testSingleton2;public class MyObject {private static MyObject myObject = null;private MyObject(){}static {myObject = new MyObject();}public static MyObject getInstance(){return myObject;}}

1.7 使用enum 枚举数据类型来实现单例模式
     枚举enum和静态代码块的特性类似,在使用枚举时,构造方法会自动被调用。
package testSingleton2;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=y2";String username = "sa";String password = "";String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";Class.forName(driverName);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();}}


也可以实现单例模式。
0 0
原创粉丝点击