单例设计模式 Single

简介:

一些人总结出来用来解决特定问题的固定的解决方案。

 

  解决一个类在内存中只存在一个对象,想要保证对象的唯一。

    1 为了避免其他程序过多的建立该类对象。禁止其他程序建立该类对象。

    2 为了其他程序可以访问该类对象,在本类中自定义一个对象。

    3 方便其他程序对自定义类的对象的访问,对外提供一些访问方式。

 代码:

    1将构造函数私有化

    2在类中创建一个私有的本类对象

    3提供一个用类名调用的公有方法获取该对象。

  懒汉模式 – 通常被称为延迟加载。注意存在线程安全问题.

懒汉式的单例模式线程安全问题的解决方案:

复制代码
    class Single{
    
    //声明本类的一个私有的成员变量
    private static Single single;
    
    //第一步 : 私有化构造方法
    private Single(){
        
    }
     //  第三步:提供一个公共的方法获取该类的实例对象
    public static Single getInstance(){
        if(single==null){
        synchronized (single) {            
                if(single==null){
                     single = new Single();
                }
            }
        }
        return single;
    }
}
复制代码

饿汉模式

 

复制代码
class Single {

    private static Single s = new Single(); // 恶汉式

    private Single() {

    }

    public static Single getInstance() {
        return s;
    }
}
复制代码

 

目录
相关文章
|
4月前
|
设计模式
单例设计模式步骤
单例设计模式步骤
28 1
|
4月前
|
设计模式 安全 测试技术
【C/C++ 设计模式 单例】单例模式的选择策略:何时使用,何时避免
【C/C++ 设计模式 单例】单例模式的选择策略:何时使用,何时避免
116 0
|
4月前
|
设计模式 安全 Java
最简单的设计模式是单例?
单例模式可以说是Java中最简单的设计模式,但同时也是技术面试中频率极高的面试题。因为它不仅涉及到设计模式,还包括了关于线程安全、内存模型、类加载等机制。所以说它是最简单的吗?
73 3
最简单的设计模式是单例?
|
4月前
|
设计模式 缓存 安全
单例设计模式的优缺点
单例设计模式的优缺点
|
4月前
|
设计模式 XML 存储
关于 ABAP 单例设计模式的一个冷门知识点
关于 ABAP 单例设计模式的一个冷门知识点
|
4月前
|
设计模式 安全 Java
【设计模式】2、设计模式分类和单例设计模式
【设计模式】2、设计模式分类和单例设计模式
48 0
|
4月前
|
设计模式 消息中间件 安全
多线程编程设计模式(单例,阻塞队列,定时器,线程池)(二)
多线程编程设计模式(单例,阻塞队列,定时器,线程池)(二)
46 1
|
4月前
|
设计模式 Java
26、Java 简单实现单例设计模式(饿汉式和懒汉式)
26、Java 简单实现单例设计模式(饿汉式和懒汉式)
47 2
|
4月前
|
设计模式 安全 Java
在Java中即指单例设计模式
在Java中即指单例设计模式
33 0
|
4月前
|
设计模式 安全 Java
【JAVA】Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式
【JAVA】Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式