java基础之单例设计模式[18]
一、什么是单例设计模式?
单例设计模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点.
设计思想:
1.构造方法私有化.
2.声明一个静态的本类对象. 3:给外部提供一个静态方法获取对象的实例.
在项目中什么时候要用单例设计模式,有什么好处?
1.在设计工具类的时候(通常工具类只有方法,没有属性);
2.工具类可能被频繁调用时.避免内存消耗;
除了单例设计模式.还可以使用构造方法私有化+静态方法,来实现工具类,比如Math.
二、单例设计模式之饿汉式
class Singleton1{
//饿汉式:占用内存的时间长,提高效率.在类被加载后,对象被创建,到程序结束后释放.
private Singleton1(){};
private static Singleton1 s=new Singleton1();
public static Singleton1 getInstance(){
return s;
}
public void demo1(){
System.out.println("饿汉式测试方法");
}
}
三.单例设计模式之懒汉式
class Singleton2{
//懒汉式:占用内存时间短,效率低(懒加载,延迟加载);在第一次调用getInstance()方法时,对象被创建,到程序结束后释放.
//在多线程时不安全.
private Singleton2(){};
private static Singleton2 s2;
public static Singleton2 getInstance(){
if (s2==null){
s2=new Singleton2();
}
return s2;
}
public void demo2(){
System.out.println("懒汉式测试方法");
}
}
四.创建单例设计模式对象
Singleton1 s=Singleton1.getInstance();
s.demo1();
Singleton2 s2=Singleton2.getInstance();
s2.demo2();
五.小结
本章概述了java中的一种设计模式:单例设计模式, 目的是为了节省重复创建对象所带来的内存消耗,从而提高效率.单例模式只创建一块对象内存,可重复使用,内存地址都相等.
有哪里不足或者有更好的建议,欢迎留言吐槽,有哪里不懂的小伙伴,可以私信我,我会一一答复,感谢认可,感谢支持!