java设计模式之单例模式的详解及优点
java设计模式之单例模式
定义:如果一个类始终只能创建一个实例,那么这个类被称为单例类,这种设计模式被称为单例模式。
Spring框架里面可以将所有生成的bean对象都设置为单例模式,只需要在配置Bean实例时指定scope=“singleton”即可,或者不做配置默认即为单例模式。
我们可以创建一个小的Demo来演示单例模式的实现,只需要保证该类只能创建一个实例,我们可以用权限修饰符private修饰该类的构造器。
提供一个创建该类的接口,该接口只能用static修饰,类里面创建一个成员变量来保存生成的实例。
代码如下:
package test;
class Anmail{
}
class singlelonDemo {
private static singlelonDemo sd;
private singlelonDemo(){
}
public static singlelonDemo single(){
if(sd == null){
sd = new singlelonDemo();
}
return sd;
}
}
public class singleDemo{
public static void main(String[] args){
singlelonDemo sd1 = singlelonDemo.single();
singlelonDemo sd2 = singlelonDemo.single();
System.out.println(sd1==sd2);
}
}
输出结果为true,表示生成的是一个实例。
单例模式是一种应用很广泛的设计模式,许多框架都有应用,下面要讲到的工厂模式里的工厂也只需要单个实例。
使用单例模式的两个优点:
1、减少创建java实例所带来的系统开销。
2、便于系统跟踪单个java实例的生命周期、实例状态等。
以上就是java单例模式的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关文章
SpringBoot使用EmbeddedDatabaseBuilder进行数据库集成测试
在开发SpringBoot应用程序时,我们通常需要与数据库进行交互,为了确保我们的应用程序在生产环境中可以正常工作,我们需要进行数据库集成测试,在本文中,我们将介绍如何使用 SpringBoot 中的 EmbeddedDatabaseBuilder 来进行数据库集成测试2023-07-07
解决Feign切换client到okhttp无法生效的坑(出现原因说明)
这篇文章主要介绍了解决Feign切换client到okhttp无法生效的坑(出现原因说明),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-02-02
springboot 自定义配置Boolean属性不生效的解决
这篇文章主要介绍了springboot 自定义配置Boolean属性不生效的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-03-03


最新评论