package com.pattern.pattern01.singleton02;
/**
* @Author:kaiyang.cui
* @Package:com.pattern.pattern01.singleton02
* @Project:Pattern23
* @name:Singleton
* @Date:2023/4/13 上午12:52
* @Filename:Singleton
* @Description:单例模式之饿汉式:静态代码块的方式
* @Version:1.0
*/
public class Singleton {
// 私有构造方法
private Singleton() {
}
/**
* 声明Singleton对象
*/
private static Singleton singleton = null;
// 在静态代码块中进行赋值
static {
singleton = new Singleton();
}
/**
* 对外提供获取该类对象的方法
* @return
*/
public static Singleton getSingleton() {
return singleton;
}
}
package com.pattern.pattern01.singleton02;
/**
* @Author:kaiyang.cui
* @Package:com.pattern.pattern01.singleton02
* @Project:Pattern23
* @name:Client
* @Date:2023/4/13 上午1:20
* @Filename:Client
* @Description:判断饿汉式获取到的两个对象是否是同一个对象,结果为true,验证了单例模式只能创建一个对象
* @Version:1.0
*/
public class Client {
public static void main(String[] args) {
// 创建Singleton类的对象
Singleton singleton1 = Singleton.getSingleton();
Singleton singleton2 = Singleton.getSingleton();
// 判断获取到的两个对象是否是同一个对象
// true
System.out.println(singleton1 == singleton2);
}
}