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;
}
}
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,在程序真正使用的时候我们采取获取实例,我们称之为懒汉模式。