单例模式

人走茶凉 提交于 2019-11-29 19:47:18

单例模式:

  • 1、单例类只能有一个实例。
  • 2、单例类必须自己创建自己的唯一实例。
  • 3、单例类必须给所有其他对象提供这一实例。             

应用场景:

比如 MP3 切歌页面 ,不能换首歌就换个页面 <  ||  >    所以我们这里用到了单例模式   再比如 一个班级只有一个班主任  不能上一节课换一个班主任  

饿汉式:

package com.hainiu.designMode;

public class EagerSingleton {
    // 饿汉式
    private static EagerSingleton es = new EagerSingleton();
    //创建对象
    private EagerSingleton(){
        
    }
    //对外提供公共的访问方式
    public static EagerSingleton getEagerSingleton(){
        return es;
        
    }
    //

    public static void main(String[] args) {
        EagerSingleton dd = EagerSingleton.getEagerSingleton();
        EagerSingleton d = EagerSingleton.getEagerSingleton();
        System.out.println(dd);
        System.out.println(d);
    }

}

创建并封装一个static 属性 的 EagerSingleton 对象    在海没有调用的时候首先创建了一个静态的对象  然后给出访问的方法

懒汉式:

不用的时候不去new这个实例,用到才new

    //
    private static EagerSingleton es = null;
    private  EagerSingleton(){
        
    }
    //对外提供公用的访问方法
    public static EagerSingleton getEagerSingleton(){
        
        if(es==null){
            es = new EagerSingleton();
        }
        return es;
        
    }
    public static void main(String[] args) {
        EagerSingleton dd = EagerSingleton.getEagerSingleton();
        EagerSingleton d = EagerSingleton.getEagerSingleton();
        System.out.println(dd);
        System.out.println(d);
    }

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!