您的位置首页生活百科

单例模式(singleton)详解

单例模式(singleton)详解

的有关信息介绍如下:

单例模式(singleton)详解

我们在计算机java行业面试或者笔试的考题之中,很容易遇见一个叫做单例模式也就是singleton的东西,这方面知识若毫无涉及,那就完全的丧失了这么一次答题机会,更严重的甚至会丧失这次来之不易的面试机会,那么今天就由我给大家带来单利模式的解析以及使用方法吧。

singleton顾名思义,就是只有一个元素的集合的意思。在java中就衍生为一个类之中只有一个实例。这么理解上去就可以很轻松的了解单例模式的定义,所谓单利,就是只有一个实例,仅此而已。

那么为什么我们需要这么一个模式呢?这是因为在很多情况下,环境的条件要求我们必须有且只有一个实例。比如说一个打印机,同一时间只能打印一个文件,那么就需要这么一个只有一个实例的类,来存放需要打印的内容。

单例模式的要点有三个,第一个也是最重要的一个,就是一个类之中只能有一个实例。第二就是他必须自己创建这个例子,而第三,也是与外界联通很重要的一个步骤,就是可以向其他的类提供本类的实例这个功能。

这里我们再来讲一下单例模式的几种实现方式,第一个就是最普通的懒汉模式。

这个必须要加上synchronized才可以在多线程的情况下工作,但是这样加同步锁又会很大程度上影响到效率,也就是说getinstance方法在系统中不是关键步骤的话才可以考虑这么使用。

第二个就是DCL双重校验锁,DLC的全称是double-checked locking

双锁的改动使得这个在并发情况下的效率要远远的大于上面的懒汉模式。

虽然实现上复杂但是效率更优。