上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
第8章 单例模式
8.1 单例模式概述
8.1.1 单例模式的定义
单例模式(Singleton Pattern)指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点,属于创建型设计模式。
原文:Ensure a class has only one instance,and provide a global point of access to it.
8.1.2 单例模式的应用场景
单例模式在现实生活中的应用非常广泛,例如公司CEO、部门经理等都属于单例模型。J2EE标准中的ServletContext和ServletContextConfig、Spring框架应用中的ApplicationContext、数据库中的连接池等也都是单例模式。对于Java来说,单例模式可以保证在一个JVM中只存在单一实例。单例模式的应用场景主要有以下几个方面。
(1)需要频繁创建的一些类,使用单例可以降低系统的内存压力,减少GC。
(2)某些类创建实例时占用资源较多,或实例化耗时较长,且经常使用。
(3)频繁访问数据库或文件的对象。
(4)对于一些控制硬件级别的操作,或者从系统上来讲应当是单一控制逻辑的操作,如果有多个实例,则系统会完全乱套。
8.1.3 单例模式的UML类图
单例模式的UML类图如下。
Singleton类被称为单例类,通过隐藏构造方法,在内部初始化一次,并提供一个全局的访问点。
8.1.4 单例模式的通用写法
以下是单例模式的通用写法。