单例模式

2020-09-02  本文已影响0人  Android一行代码

懒汉式(线程不安全):比较少用;

饿汉式和双检锁:安全

静态内部类 :实现 lazy loading 效果

枚举方式:反序列化创建对象

1、懒汉式

public class Pater {
    private  static  Pater instanse;
    public Pater() {}
    public static  Pater  getInstanse(){
        if(instanse==null){
            instanse=new Pater();
        }
        return instanse;
    }
}

2.饿汉式

public class Pater {
    private  static  Pater instanse=new Pater();
    public Pater() {}
    public static  Pater  getInstanse(){
        return instanse;
    }
}

3、双检锁

public class Pater {
    private  static  Pater instanse;
    public Pater() {}
    public static  Pater  getInstanse(){
        if(instanse==null){
            synchronized (Pater.class){
                if(instanse==null){
                    instanse=new Pater();
                }
            }
        }
        return instanse;
    }
}

4、静态内部类

public class Pater {
   private  static class  Singlepater{
       private static final  Pater INSTANSE=new Pater();
   }
    public Pater() {}
    public static final Pater getinstanse(){
       return  Singlepater .INSTANSE;
    }
}

5.枚举类型

    public enum Pater1{
       INSTANSE;
    }
上一篇下一篇

猜你喜欢

热点阅读