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

一.什么是单例模式

一个类对应一个对象

二.特点

唯一对象在类初始化的时候就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);
    }
}

三.特点

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

相关推荐
nnsix7 小时前
设计模式 - 建造者模式 笔记
笔记·设计模式·建造者模式
cui17875687 小时前
矩阵拼团 + 复购拼团:新零售最稳的复购模式,规则简单
大数据·人工智能·设计模式·零售
百珏7 小时前
[灰度发布]:全链路透传组件:APM、自研方案与 Java Agent 的实现取舍
后端·设计模式·架构
likerhood9 小时前
设计模式 · 享元模式(Flyweight Pattern)java
java·设计模式·享元模式
AI大法师10 小时前
从 Adobe 焕新看品牌系统升级:Logo、主色、字体与产品体验如何重新对齐
大数据·人工智能·adobe·设计模式
贵慜_Derek10 小时前
《从零实现 Agent 系统》连载 03|控制循环:感知—决策—行动—反思
人工智能·设计模式·架构
nnsix11 小时前
设计模式 - 原型模式 笔记
笔记·设计模式·原型模式
nnsix11 小时前
设计模式 - 适配器模式 笔记
笔记·设计模式·适配器模式
asdfg125896311 小时前
一文理解软件开发中的“设计模式”
java·设计模式·软件开发
云飞云共享云桌面12 小时前
SolidWorks 服务器通过云飞云共享云桌面10人研发共享方案
运维·服务器·3d·设计模式·电脑