单例模式和工厂模式是平时开发中最常见的两种设计模式,即便没有系统学习过设计模式的开发者,也必然对此不陌生。这两种设计模式是我认为最容易理解,最简单的设计模式,因此放在同一篇文章中。
单例模式
概述
单例模式确保一个类只有一个实例,并提供一个全局访问点
我们常常希望某个对象实例只有一个,不想要频繁的创建和销毁对象,浪费系统资源,最常见的就是IO,数据库的连接,redis连接等对象,完全没有必要创建多个一模一样的对象,一个足矣。
类图:
正如上面类图所示,单例模式就是这么简单,用静态变量instance将实例保存起来,然后调用getInstance()时直接返回instance变量,这就是单例模式。
虽然单例模式简单,但是也不要小看它,其中还有许多细节需要我们注意。
线程安全问题
单例模式代码如下:
public class SingleObject {
private static SingleObject