单例模式:概述

Posted Gerrard_Feng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例模式:概述相关的知识,希望对你有一定的参考价值。

单例

 

  所谓单例模式,即是确保某一个类在整个系统中,只有一个实例。这是一种非常简单的设计模式,但是应用场景非常广泛,其优点非常明显,能够极大的减少系统对于同一个对象的创建和销毁,从而减少内存的开销。但是一定意义上来说,单例模式与我们熟知的单一职责原则有所冲突。

 

实现单例的方法

 

  要了解如何保证一个类始终只有一个实例,首先需要知道,一个类是怎么创建实例的:

  

  以上文章,总结了4种在Java中创建对象的方法,其中构造器是最常用的方法,而 Object 的 clone() 方法,其设计的意义与单例完全背道而驰,可以这么理解:如果一个类实现了 Cloneable 接口,那么设计者本身就不希望这个类是一个单例,所以就不做考虑了。另外一方面,在设计单例类时,要考虑到多线程并发访问的情况。

 

  我总结了5种实现单例模式的方法:

 

  • 饿汉模式
  • 懒汉模式
  • 静态内部类模式
  • 单元素枚举类模式
  • 登记模式

 

  以上5种方式,其各自的优劣,会在之后一一说明,欢迎补充和指正。

 

以上是关于单例模式:概述的主要内容,如果未能解决你的问题,请参考以下文章

设计模式单例模式

设计模式单例模式

设计模式之单例模式(懒汉, 饿汉)

设计模式之单例模式

Java单体应用 - 架构模式 - 03.设计模式-03.单例模式

单例模式