10.7 单例模式

单例模式----饿汉模式

class Singleton {								// 单例程序类
	// 在类内部进行Single类对象实例化,为了防止可能出现重复实例化所以使用final标记
	private static final Singleton INSTANCE = new Singleton();
	private Singleton() {}						// 构造方法私有化,外部无法通过关键字new实例化 
	/**
	 * 获取本类实例化对象方法,static方法可以不受实例化对象的限制进行调用
	 * @return INSTANCE内部实例化对象,不管调用多少次此方法都只返回同一个实例化对象
	 */
	public static Singleton getInstance() {
		return INSTANCE;
	}
	public void print() {							// 信息输出
		System.out.println("www.mldn.cn");
	}
}

public class JavaDemo {
	public static void main(String args[]) {
		// 在外部不管有多少个Singleton类对象,实质上最终都只调用唯一的一个Singleton类实例
		Singleton instance = null; 				// 声明对象
		instance = Singleton.getInstance();		// 获取实例化对象
		instance.print();						// 通过实例化对象调用方法
	}
}

单例模式----懒汉模式(也称为饱汉模式)

class Singleton {								// 单例程序类
	// 定义公共的instance属性,由于需要在第一次使用时实例化,所以无法通过关键字final定义
	private static Singleton instance;			// 声明本类对象
	private Singleton() {}						// 构造方法私有化,外部无法通过关键字new实例化 
	/**
	 * 获取本类实例化对象方法,static方法可以不受实例化对象的限制进行调用
	 * @return 返回唯一的一个Singleton类的实例化对象
	 */
	public static Singleton getInstance() {
		if (instance == null) {					// 第一次使用时对象未实例化
			instance = new Singleton() ; 			// 实例化对象
		}
		return instance ;						// 返回实例化对象
	}
	public void print() {							// 信息输出
		System.out.println("www.mldn.cn");
	}
}
public class JavaDemo {
	public static void main(String args[]) {
		// 在外部不管有多少个Singleton类对象,实质上最终都只调用唯一的一个Singleton类实例
		Singleton instance = null; 				// 声明对象
		instance = Singleton.getInstance();		// 获取实例化对象
		instance.print();						// 通过实例化对象调用方法
	}
}

posted @   盘思动  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
历史上的今天:
2021-07-01 PHP用CURL发送Content-type为application/json的POST请求方法
2019-07-01 怎么用Ubuntu系统制作Ubuntu系统盘
点击右上角即可分享
微信分享提示