开篇
设计模式对于很多小伙伴来说都是它认识你,但是你不认识它,设计模式可以帮助我们简化代码,提高代码的复用率,减少代码的耦合性,以及增加代码的重复利用性,但是设计模式并非是好用的代言,有些时候也会给我们代来很多问题,比如简单的判断语句会变成复杂的多类关联,也会引发一些安全问题,比如今天要说的单例模式。
基本介绍
单例模式(Singleton Pattern)是Java中最简单的设计模式之一(暗藏玄机)。属于创建模式之一,提供了一种创建对象的最佳方式。一个单一的类,负责创建自己的对象,同时保证只有单个对象被创建,对外提供唯一的方法来获取该类的对象,并且不需要实例化对象。因此可以总结出以下几点:
- 只能有一个实例(注意防止并发)。
- 实例必须是自己创建的。
- 必须给其他对象这一实例。
主要解决
一个被全局使用的类,被频繁的创建,当你想控制资源,节省资源时,你就要使用单例模式。
关键代码
- 默认构造函数要私有。
- 提供对外获取对象的唯一方法。
使用场景
- Spring中Bean容器管理的对象,默认下就是通过单例构建对象
- 系统中ID生成器,通常采用单例模式创建出对象
- 比如定时任务中,发现任务和触发执行器执行的类,一般都设计成单例模式获取(频繁使用)