版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ljh_learn_from_base/article/details/84810530
在实际的编程开发中,单例设计模式是我们谈得最多但用得最少的设计模式。单例设计模式的4种实现方式:
饿汉式、懒汉式、静态内部类式、枚举式,我这里就不说了。详情请参考我的另一篇博客
可以说我到现在都没有使用上(在实际公司工作中),为什么会这样呢,我们来看看单例设计模式有哪些常见的应用场景
- window 的控制面板、任务管理器、回收站
- 网站的计数器
- 应用程序的日志应用:log4j、slf4j、logkback
- 项目中配置文件的读取
- 线程池(管理多个线程):java 自带线程池
- 数据库连接池(管理多个数据库连接):c3po 等
- 文件系统
从以上使用场景我们可以看出 ,其实那些所谓的常用场景,只要写一次,后期就基本上不会去改动了。所以我们用得非常少,但为什么我们总是谈起单例模式呢,就是那些面试官总是问这些问题,真不明白为什么老是要问这些,面试时造飞机大炮,工作时写HTML,不知道各位有没有同感。
在Java中,运行时类也就是Runtime类,被设计成是单例的饿汉式,spring 中的bean 和spring mvc 中的controller、service、dao层中通过@autowire的依赖注入对象默认都是单例的,使用单例的目的当然是节约内存节省资源。
其实我也就发发牢骚,不知道各位有什么看法,欢迎下方评论!