单例模式设计(一)

简介: 饿汉模式 由名字我们就可以知道 "饿汉" 嘛,就比较急切,在类加载的时候就创建实例:1. 写一个类,在本类中构造实例,用static修饰,直接创建出来(提供一个现有的实例)2. 在本类中写一个方法获取到上面的实例3. 将这个类的构造方法设置为私有的,让外部不能 new 这个对象

目录


饿汉模式


懒汉模式


懒汉模式优化


饿汉模式

由名字我们就可以知道 "饿汉" 嘛,就比较急切,在类加载的时候就创建实例:


1. 写一个类,在本类中构造实例,用static修饰,直接创建出来(提供一个现有的实例)


2. 在本类中写一个方法获取到上面的实例


3. 将这个类的构造方法设置为私有的,让外部不能 new 这个对象

//饿汉模式:直接 static 一个实例(线程安全)
//期望这个类只能有一个实例
public class Demo1 {
    //只构造一个实例
    private static Demo1 instance = new Demo1();
    //获取这个实例
    public static Demo1 getInstance() {
        return instance;
    }
    //把构造方法设置为私有 外部不能 new 这个类对象
    private Demo1(){}
}

懒汉模式

由名字我们就可以知道 "懒汉" 嘛,就比较从容~,它是等到有人调用的时候再创建实例:


1. 写一个类,在本类中构造实例,用static修饰,赋值为空(等待有人调用)


2. 在本类中写一个方法获取到上面的实例


3. 将这个类的构造方法设置为私有的,让外部不能 new 这个对象

//懒汉模式:
//期望这个类只能有一个实例
public class Demo2 {
    private static Demo2 instance = null;
    //获取这个实例
    public static Demo2 getInstance() {
        if (instance == null) {
            instance = new Demo2();
        }
        return instance;
    }
    //把构造方法设置为私有 外部不能 new 这个类对象
    private Demo2(){}
}


目录
相关文章
|
3月前
|
设计模式 安全 测试技术
【C/C++ 设计模式 单例】单例模式的选择策略:何时使用,何时避免
【C/C++ 设计模式 单例】单例模式的选择策略:何时使用,何时避免
104 0
|
3月前
|
设计模式 缓存 安全
【设计模式】单例模式:确保类只有一个实例
【设计模式】单例模式:确保类只有一个实例
40 0
|
3月前
|
C++
C++实现单例模式-多种方式比较
单例模式,面试中经常被问到,但是很多人只会最简单的单例模型,可能连多线程都没考虑到,本文章从最简单的单例,到认为是最佳的单例模式实现方式,单例模式没有什么知识点,直接上源码
66 0
|
10月前
|
设计模式 安全 Java
特殊类设计及单例模式(C++)
特殊类设计及单例模式(C++)
71 1
|
2月前
|
设计模式 缓存 安全
Java设计模式的单例模式应用场景
Java设计模式的单例模式应用场景
32 4
|
3月前
|
设计模式 安全 Java
软件设计模式:单例模式
软件设计模式:单例模式
|
2月前
|
设计模式 SQL 安全
Java设计模式:单例模式之六种实现方式详解(二)
Java设计模式:单例模式之六种实现方式详解(二)
|
3月前
|
设计模式
【设计模式】单例模式的三种实现方式
【设计模式】单例模式的三种实现方式
26 1
|
安全 Java 编译器
单例模式的4种实现方式
单例模式的4种实现方式
89 0
|
设计模式 关系型数据库 MySQL
你知道独生子女用编程怎么表示吗?单例模式了解一下
你知道独生子女用编程怎么表示吗?单例模式了解一下
70 1
你知道独生子女用编程怎么表示吗?单例模式了解一下