Java单例模式常用的3种实现方式

来源:互联网 发布:mirrorlink 软件 编辑:程序博客网 时间:2024/06/06 03:51

单例模式的实现由很多种,都是为了保证在运行环境中只有该类的一个实例存在,为其他对象提供服务。

比如:工具类,配置类,线程池等。


常见的实现由两种,

// 懒汉式(延迟加载模式),初始时没有创建对象的实例,只有在调用getInstance方法时,才创建实例。public class Single{     //声明私有该类的实例,并且为静态     private static Single instance;     //私有默认构造函数,外部无法直接构造该对象     private Single(){}        //对外提供获取实例的静态方法, (该方法是线程不安全的,可加synchronized锁使线程安全)。     public static Single getInstance(){      //实例为空时,创建该类的实例       if(instance == null){          instance = new Single();        }       return instance;     }  }// 饿汉式,初始时即创建静态实例public class Single{  //创建私有的该类静态实例  private static Single instance = new Single();  //私有构造函数  private Single(){}  //对外提供获取实例的静态方法  public static Single setInstance(){     return instance;  }}


第三种:静态内部类获取方式

public class Single{ //私有构造函数  private Single(){}  //内部类持有该对象的实例  private static class SingletonHolder(){     static Single instance = new Single();  }  // 公有获取实例的静态方法  public static Single getInstance(){    reuturn SingletonHolder.instance;  }}


0 0
原创粉丝点击