单例设计模式

Posted loveincode

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例设计模式相关的知识,希望对你有一定的参考价值。

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

 

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

    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;
    }
}

 

以上是关于单例设计模式的主要内容,如果未能解决你的问题,请参考以下文章

常用代码片段

性能比较好的单例写法

片段作为 Android 中的单例

单例片段或保存网页视图状态

从 Viewpager2 片段访问父片段函数

你熟悉的设计模式都有哪些?写出单例模式的实现代码