单例设计模式:
设计模式:
一个问题通常有n种解法,其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为设计模式。
设计模式有23种,对应23种软件开发中会遇到的经典问题。
单例设计模式:确保一个类只有一个对象。
饿汉式单例:
饿汉式单例:拿对象时,对象早就创建好了。
饿汉式单例步骤:
1.构造器私有, 目的就是不让别人创建对象。
2.使用成员变量保存自己创建的单例对象。
3.提供方法返回单例对象给别人使用。
package com.ouyang.demo04;//音乐播放器(单例),作用:让一个类只能创建一个对象
public class AudioPlayer {//1.构造器私有,目的就是不让别人创建对象private AudioPlayer(){}//2.使用成员变量保存自己创建的单例对象(类加载的时候就创建对象)//private保证别人不能修改该实例//static保证只有一份实例private static AudioPlayer instance=new AudioPlayer();//3.提供方法返回单例对象给别人使用//static 保证别人不需要创建对象,直接使用类名来调用该方法public static AudioPlayer getInstance(){return instance;}
}
懒汉式单例:
懒汉式单例:拿对象时,才开始创建对象。
package com.ouyang.demo04;//视频播放器
public class VideoPlayer {//1.构造器私有private VideoPlayer(){}//2.使用静态变量保存单例对象private static VideoPlayer instance;//null//3.提供静态方法返回对象给别人使用// 懒汉式单例,拿对象使用时,才创建对象(晚)public static VideoPlayer getInstance(){//第一次调用这个方法会发现对象==nuLL,就会创建对象,后面这个对象就有值了,不再创建了if(instance==null){instance=new VideoPlayer();}return instance;}
}