单例设计模式:
设计模式:
一个问题通常有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;
}
}