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

一.什么是单例模式

一个类对应一个对象

二.特点

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

三.特点

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

相关推荐
阿闽ooo2 天前
中介者模式打造多人聊天室系统
c++·设计模式·中介者模式
小米4962 天前
js设计模式 --- 工厂模式
设计模式
逆境不可逃2 天前
【从零入门23种设计模式08】结构型之组合模式(含电商业务场景)
线性代数·算法·设计模式·职场和发展·矩阵·组合模式
驴儿响叮当20102 天前
设计模式之状态模式
设计模式·状态模式
电子科技圈2 天前
XMOS推动智能音频等媒体处理技术从嵌入式系统转向全新边缘计算
人工智能·mcu·物联网·设计模式·音视频·边缘计算·iot
徐先生 @_@|||3 天前
安装依赖三方exe/msi的软件设计模式
设计模式
希望_睿智3 天前
实战设计模式之访问者模式
c++·设计模式·架构
茶本无香3 天前
设计模式之十六:状态模式(State Pattern)详解 -优雅地管理对象状态,告别繁琐的条件判断
java·设计模式·状态模式
驴儿响叮当20103 天前
设计模式之备忘录模式
设计模式·备忘录模式
驴儿响叮当20103 天前
设计模式之迭代器模式
设计模式·迭代器模式