单例模式

Posted lzh66

tags:

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

顾名思义,单例模式就是要求只有一个实体对象。

单例模式分为懒汉式和饿汉式

饿汉式:一开始就创建对象,线程安全,但是如果用不到这个对象,会造成浪费

懒汉式:要的时候才创建,不会造成浪费,但是会有线程安全的问题.

饿汉式和懒汉式都是私有化构造函数,不让外面能够直接new 对象.

饿汉式

private static Hungry instance = new Hungry();

    private Hungry(){}


    public Hungry getInstance(){
        return instance;
    }

 

懒汉不安全式

public class LazyUnSafe {

    private LazyUnSafe instance;

    public LazyUnSafe getInstance(){
        if(instance == null){
            instance = new LazyUnSafe();
        }
        return instance;
    }
}

 

懒汉安全式

public class LazySafe {

    private LazySafe instance;

    private LazySafe(){}

    public LazySafe getInstance() {
        if(instance == null){
            synchronized (LazySafe.class){
                if(instance == null){
                    instance = new LazySafe();
                }
                return instance;
            }
        }
        return instance;
    }
}

 

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

常用代码片段

性能比较好的单例写法

片段作为 Android 中的单例

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

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

单例模式以及静态代码块