标签:
单例模式是设计模式中相对简单的一个模式,主要用于保证程序中只存在一个类的实例,所以称为单例。
这一点和枚举类很相似,枚举类是存在有限个数的类的实例,在极端情况下,即枚举的有限个数为1,则就是单例模式。
下面介绍单例的两种方式:
// 饿汉式 public class Singleton { // 1.私有化构造函数 private Singleton(){ } // 2.内部创建实例,并私有化 private static Singleton instance = new Singleton(); // 3.设置get方法,允许外部创建实例,并设置成static,相应的成员变量也声明为static public static Singleton getInstance(){ return instance; } }
有以下注意点:
//懒汉式 public class Singleton1 { private Singleton1(){ } private static Singleton1 instance = null; public static Singleton1 getInstance(){ // 一般情况下不创建,只有在在调用并且instance为null的情况下才会创建 // 可能会存在线程安全的问题 if(instance == null){ instance = new Singleton1(); } return instance; } }
与饿汉式区别就是实例创建的时机。
标签:
原文地址:http://www.cnblogs.com/the-world-wang/p/4788583.html