单例模式

单例模式

概念:只有一份实例对象, 存放在内存中。

1、分类

分为:懒汉式 和 饿汉式

①、懒汉式

1、懒汉式:概念

用到的时候,再去new对象,类似于:延迟加载

2、懒汉式:代码

package com.yyy.domain;

/**
 * 单例模式(分类之一):
 *      懒汉式
 */
public class Singleton {
    //1、私有构造方法
    private Singleton(){

    }

    //2、创建:Singleton静态实例对象
    private static Singleton instance;

    //3、提供(公有静态)方法:返回静态实例对象
    public static Singleton getInstance(){

        if(instance == null){
            synchronized (Singleton.class){         //锁:类对象
                if(instance == null){
                    instance =  new Singleton();
                }
            }
        }

        return instance;
    }

}

3、懒汉式:代码图

image-20201113185230502

②、饿汉式

1、饿汉式:概念

直接new对象, 未雨绸缪

2、代码

package com.yyy.domain;

/**
 * 单例模式(分类之一):
 *      饿汉式
 */
public class Singleton {
    //1、私有构造方法
    private Singleton(){

    }

    //2、创建:Singleton静态实例对象
    private static Singleton instance = new Singleton();  //为什么不加final? 因为外部类(正常情况)是改不了:私有属性的

    //3、提供(公有静态)方法:返回静态实例对象
    public static Singleton getInstance(){
        return instance;
    }
}

3、代码图

image-20201113183734992

若有问题可联系本人qq:2560055298 (探讨)      ---老洋
posted @ 2020-11-29 21:00  漫漫求  阅读(79)  评论(0编辑  收藏  举报