/*
* 单例设计模式(重点)
*
* 单例:唯一的实例,在整个Java系统中,某个类的对象只有唯一的一个。
*
* 形式:
* 1、饿(恶)汉式
* 无论使用者是否要用这个对象,都先创建这个对象。
* 2、懒汉式
* 只有在使用者来获取这个对象时,才会创建这个对象。
*
* 无论哪一种单例设计模式的写法:
* (1)这个类的构造器是私有化 -->保证我们的使用者不能随意的创建第二个对象...
* (2)这个唯一的实例必须在本类中创建,并且要用一个静态的变量来存储。
*
*
*/
public class TestSingleton {
}
/*
* 一、饿汉式
* 1、用一个(公共的静态的常量)来保存这个唯一的实例对象
* 2、枚举类
* 3、用一个(私有的静态的常量)来保存这个唯一的实例对象,再用一个静态方法返回这个唯一的对象
*/
public class TestHungry {
public static void main(String[] args) {
// Hungry h = new Hungry();//外面无法创建对象
//如何获取这个单例的对象
Hungry h = Hungry.INSTANCE;
HungryEnum he = HungryEnum.INSTANCE;
HungryDemo hd = HungryDemo.getInstance();
}
}
class Hungry{
//(2)用一个静态的变量,来存储这个唯一的对象
//这个对象是在类初始化时就创建了
public static final Hungry INSTANCE = new Hungry();
enum HungryEnum{
INSTANCE
}
class HungryDemo{
//(2)用一个静态的变量,来存储这个唯一的对象
//这个对象是在类初始化时就创建了
private static final HungryDemo INSTANCE = new HungryDemo();
//(1)构造器私有化
private HungryDemo(){
}
public static HungryDemo getInstance(){
return INSTANCE;
}
}