[设计模式]单例模式饿汉式写法

一.什么是单例模式

一个类对应一个对象

二.特点

唯一对象在类初始化的时候就new好了

eg:

2.1第一种写法

复制代码
public class SingleOne {
    //在类的内部提前创建好这个类的唯一对象
    private static final SingleOne singleOne = new SingleOne();
    //其他成员正常定义
//    private int a;

    //构造器私有化,不允许外部创建对象
    private SingleOne(){
        ;
    }

    //供外界获取这个类的唯一对象
    public static SingleOne getSingleOne(){
        return singleOne;
    }

    //其他成员正常定义
}
复制代码
import org.junit.jupiter.api.Test;

public class TestSingleOne {
    @Test
    public void testSingleOne(){
        SingleOne singleOne = SingleOne.getSingleOne();
        SingleOne singleOne1 = SingleOne.getSingleOne();
        System.out.println(singleOne == singleOne1);
    }
}

2.2第二种写法

复制代码
public class SingleOneAnotherWriteModel {
    public static final SingleOneAnotherWriteModel singleOneAnotherWriteModel
            = new SingleOneAnotherWriteModel();;
    //其他成员正常定义

    //构造器私有化
    private SingleOneAnotherWriteModel(){
        ;
    }

    //其他成员正常定义
}
复制代码
import org.junit.jupiter.api.Test;

public class TestSingleOneAnotherWriteModel {
    @Test
    public void testSingleOneAnotherWriteModel(){
        SingleOneAnotherWriteModel singleOne = SingleOneAnotherWriteModel.singleOneAnotherWriteModel;
        SingleOneAnotherWriteModel singleOne1 = SingleOneAnotherWriteModel.singleOneAnotherWriteModel;
        System.out.println(singleOne == singleOne1);
    }
}

三.特点

饿汉式写法没有线程安全问题

相关推荐
bbq粉刷匠12 小时前
Java--多线程--单例模式
java·开发语言·单例模式
szm022516 小时前
设计模式-
设计模式
砍光二叉树16 小时前
【设计模式】创建型-抽象工厂模式
设计模式·抽象工厂模式
砍光二叉树17 小时前
【设计模式】创建型-工厂方法模式
设计模式·工厂方法模式
我爱学习_zwj18 小时前
设计模式-2(单例模式与原型模式)
前端·javascript·设计模式
砍光二叉树18 小时前
【设计模式】创建型-单例模式
单例模式·设计模式
我爱学习_zwj18 小时前
设计模式-3(装饰器模式)
前端·设计模式·装饰器模式
魑魅魍魉都是鬼19 小时前
Android:java kotlin 单例模式
android·java·单例模式
biter down1 天前
C++ 单例模式:饿汉与懒汉模式
开发语言·c++·单例模式
文心快码BaiduComate1 天前
Comate内置模型已支持 MiniMax-M2.7!
设计模式·程序员·前端框架