这篇文章是今天重写的,开会搞了一下午,另一篇文章写了一半,等晚上写完明天发。最近在使用一个科学的方法研究一个有意思的事,如何科学化的判断你的另一半是否也爱你。废话不多说了,开始一下今天的文章。
单例模式是一种最常见的设计模式,写法也比较多,在这篇文章里面主要是对单例模式的各种写法进行一个介绍。面试的时候会对其中两三种进行体会,而且我还遇到了口述单例模式的例子。重要性就不言而喻了吧。
![66d199b19ca52f5d831071f48fbf1e83.png](https://img-blog.csdnimg.cn/img_convert/66d199b19ca52f5d831071f48fbf1e83.png)
一、单例模式的介绍
单例模式的重要点在于两个,一个是在哪些地方使用到了单例模式,一个是单例模式如何写。之前只考虑到了如何写,但是哪些地方使用到了,表述的不是很清楚。这一次我找了几个实际例子。
概念:单例模式确保某个类只有一个实例。
有一个通俗的理解,那就是在古代,全国就一个皇帝。如何确保一个皇帝?这就是单例模式。
先看如何写,然后再看在哪用。
二、单例模式的各种写法
1、懒汉式:基本写法
懒汉式就是什么时候用,什么时候创建类的实例。
public class Singleton { private Singleton() {}//构造方法 private static Singleton single=null; public static Singleton getInstance() { if (single == null) { single = new Singleton(); } return single; }}
特点:
(1)线程不安全(并发时可能出现多个单例)
(2)构造方法为private,限定了外部只能从getInstance去获取单例
(3)使用static关键字,表明全局只有一份节约了资源,但是如果单例对象比较复杂,new时就比较耗时间。这一点要注意。
上面最主要的缺点就是线程不安全,因此想要解决这个问题,只需要对方法加锁即可。
2、懒汉式:使用synchronized 同步
publ