单例模式
1.定义
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
2.示例代码
/*饿汉式单例模式,类加载时创建对象,线程安全*/ public class Singleton{ //类加载时候创建实例,而且static保证创建一次 public static Singleton instance = new Singleton(); //私有化构造方法 private Singleton(){ } //定义一个静态方法提供实例 public static Singleton getInstance(){ //直接返回已经创建好的实例 return instance; } }
/*懒汉式单例模式,使用的时候创建实例,线程不安全*/ public class Singleton{ private static Singleton instance = null; //私有化构造函数 private Singleton(){ } //提供获取实例的方法,该方法只有加上同步才是线程安全的 public static Singleton getInstance(){ //判断实例是否生成,如果没有就创建 if(instance = null){ instance = new Singleton(); } return instance; } }
3.实际应用
单例模式实现的方式除了上边两种外,还有通过静态内部类以及枚举类的实现方式。
单例模式本质:控制实例数目