设计模式 - 单例模式
1. 定义:
单例模式:核心结构中只包含一个被称为单例的特殊类
2.使用场景:
我们在程序开发的时候,有些情况我们只需要程序一个对象,且必须是一个对象去完成一项任务时就应该使用单例模式
3. 具体应用:
常见的单例模式分为懒汉模式、饿汉模式。
3.1 饿汉模式
package com.dcz.singleton; /** * 单例模式 - 饿汉模式 * @author Administrator */ public class Singleton { // 创建一个静态的单例对象 private static Singleton instance = new Singleton(); // 构造函数私有化,避免外界通过NEW创建对象 private Singleton(){ } // 创建静态获取实例方法 public static Singleton getInstace(){ return instance; } }
我们在创建静态单例对象的时候使用了两个修饰符private和static ,这使我们Singleton这个类在加载的时候就会实例化一个对象共方法调用,我们称之为饿汉模式。
3.2 懒汉模式
package com.dcz.singleton; /** * 设计模式 - 懒汉模式 * @author Administrator */ public class Singleton2 { // 构造函数私有化 private Singleton2(){ } // 创建唯一的类实例 private static Singleton2 instance = null; // 创建静态获取类实例方法 public static Singleton2 getInstance(){ if(null != instance){ return instance; } synchronized (Singleton2.class) { if(null == instance){ instance = new Singleton2(); } } return instance; } }
在创建唯一的类实例的时候我们声明为null,在程序真正使用的时候我们采取获取实例,我们称之为懒汉模式。