单例模式
1、保证系统中只有一个实例,不可创建多个,适用于系统中只使用一个对象就足够的情况,如任务管理器
2、可以节省内存空间
饿汉单例模式
package com.ruqi.design;
// 饿汉单例模式:提前加载好类,且只能创建一个类
public class SingleInstace {
// 1、将构造器私有化,保证不可创建多个实例
private SingleInstace(){
}
// 2、由于静态成员是加载类时提前加载,因此先创建一个类放到该静态成员方法
public static SingleInstace instace = new SingleInstace();
public static void main(String[] args) {
// 3、使用该实例,无论在哪里使用,对象地址都是一样的
SingleInstace s = SingleInstace.instace;
SingleInstace s1 = SingleInstace.instace;
System.out.println("结果是true");
System.out.println(s == s1);
}
}
懒汉单例模式
package com.ruqi.design;
// 懒汉单例模式:需要时才创建实例,且只能创建一个类
public class SingleInstace {
// 1、将构造私有化,保证不可创建多个实例
private SingleInstace(){
}
// 2、由于静态成员,后续存放实例,并且将其私有化,避免直接调用该成员
private static SingleInstace instace;
public static SingleInstace getInstace(){
if (instace == null){
instace = new SingleInstace();
}
return instace;
}
public static void main(String[] args) {
SingleInstace s = SingleInstace.getInstace();
SingleInstace s1 = SingleInstace.getInstace();
System.out.println(s);
System.out.println(s1);
}
}
本文介绍了单例模式的基本概念及其两种实现方式:饿汉式和懒汉式。饿汉式单例模式通过提前加载实例确保唯一性,而懒汉式则在需要时才创建实例。这两种方式都能有效保证系统中仅有一个实例,适用于只需要一个对象就能完成任务的场景。

被折叠的 条评论
为什么被折叠?



