单例模式

一、单例模式概述

单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。总之,选择单例模式就是为了避免不一致状态。

二、单例模式特点

1、单例类只能有一个实例。

2、单例类必须自己创建自己的唯一实例。

3、单例类必须给所有其他对象提供这一实例。

单例模式保证了全局对象的唯一性,比如系统启动读取配置文件就需要单例保证配置的一致性。

三、单例模式代码


饿汉模式
懒汉模式
静态方法快模式
静态内部类模式

我们可以把Singleton实例放到一个静态内部类中,这样就避免了静态实例在SingletonV4类加载的时候就创建对象,并且由于静态内部类只会被加载一次。

线程安全模式


双重校验锁模式
枚举模式
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用...
    SpaceCat阅读 4,809评论 1 7
  • 目录 1、设计模式简介 2、什么是单例模式 3、单例模式应用场合 4、单例模式作用 5、单例模式3个要点/要素 6...
    greensure阅读 5,080评论 1 10
  • 在所有的设计模式中,单例模式是我们在项目开发中最为常见的设计模式之一,而单例模式有很多种实现方式,你是否都了解呢?...
    耶律枣阅读 3,126评论 0 0
  • 【AMBR修炼—D12】-2017/12/25 A 下班后去药店买了点药和日用品,按常规,结完帐后,就让服务员记在...
    梅子教练阅读 2,649评论 0 0
  • #morning[玫瑰][玫瑰][玫瑰]# Happy birthday to my hero Stephen C...
    帅气的靖王阅读 1,540评论 0 0