单例设计模式
2022-02-07 本文已影响0人
雪燃归来
单例设计模式:保证一个类中仅有一个实例,并提供一个访问它的全局访问点。单例模式的思想在于保证工具类仅有一个实例,以节省工具类在频繁使用时不断创建对象消耗内存的场景。
一、单例设计模式的特点
1、构造方法私有化
2、声明一个本类对象
3、给外部提供一个静态方法获取对象实例
在项目中为什么要使用单例,单例有什么好处吗?
1、在设计一些工具类的时候(通常工具类,只有功能、方法, 没有属性)
2、工具类可能会被频繁调用
二、两种实现单例设计模式的方式
1、饿汉模式(占用内存的时间长,提高效率)
在类被加载后,对象被创建,到程序结束后释放
class Singleton1{
private Singleton1(){}
private static Singleton1 s = new Singleton1();
public static Singleton1 getInstance(){
return s;
}
public void print(){
System.out.println("测试方法");
}
}
// 测试
public class Test1 {
public static void main(String[] args) {
Singleton1 s = Singleton1.getInstance();
s.print();
}
}
2、懒汉模式:占用内容时间短,效率低(懒加载,延迟加载),在多线程访问时会有安全问题。
在第一次调用getInstance方法时, 对象被创建,到程序结束后释放。
class Singleton2{
private Singleton2(){}
private static Singleton2 s;
public static Singleton2 getInstance(){
if(s == null){
s = new Singleton2();
}
return s;
}
public void print(){
System.out.println("测试方法2");
}
}
// 测试
public class Test1 {
public static void main(String[] args) {
Singleton1 s = Singleton1.getInstance();
s.print();
Singleton2 s1 = Singleton2.getInstance();
s1.print();
}
}