设计模式之单例模式

单例模式的定义:

确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例

单例的使用场景:

1.要求生成唯一序列号的环境
2.创建一个对象需要消耗的资源过多
3.需要定义大量的静态常量和静态方法

单例模式分为懒汉式和饿汉式两种:

饿汉式单例:

/**
 * @Author: chuan.bai
 * @Description 饿汉式单例模式
 * @Date: Created on 08:59 2018/3/14
 * @Modified By:
 */
public class Singleton {

    public static final Singleton singleton = new Singleton();

    /**
     * 构造方法
     */
    private Singleton() {

    }

    public static Singleton getSingleton() {
        return singleton;
    }

    public void singletonMethon() {
        System.out.println("生成一个单例方法");
    }

    public static void main(String[] args) {
        Singleton singleton = Singleton.getSingleton();
        //创建对象a
        Singleton singletonA = Singleton.getSingleton();
        //创建对象b
        Singleton singletonB = Singleton.getSingleton();
        //比较对象地址值
        System.out.println(singletonA.equals(singletonB));

        singleton.singletonMethon();
    }
}

懒汉式单例

/**
 * @Author: chuan.bai
 * @Description 懒汉式单例
 * @Date: Created on 10:45 2018/3/14
 * @Modified By:
 */
public class SingletonB {

    private static SingletonB singletonB = null;

    private SingletonB(){

    }

    public synchronized static SingletonB getSingletonB(){
        if(singletonB==null){
            singletonB =new SingletonB();
        }
        return singletonB;
    }
}

你可能感兴趣的:(设计模式之单例模式)