设计模式之单例模式
单例模式 在有些系统中,为了节省内存资源、保证数据内容的一致性,对某些类要求只能创建一个实例,这就是所谓的单例模式。 单例模式的定义与特点 单例模式(Singleton Pattern)的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式。 单例模式有 3 个特点: 1.单例类只有一个实例对象; 2.该单例对象必须由单例类自行创建; 3.单例类对外提供一个访问该单例的全局访问点; 优点: 1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例。 2、避免对资源的多重占用(比如写文件操作)。 缺点: 没有接口,不能继承,与单一职责原则冲突,一个类应该只关心内部逻辑,而不关心外面怎么样来实例化。 单例模式的结构与实现 单例模式是 设计模式 中最简单的模式之一。通常,普通类的构造函数是公有的,外部类可以通过“new 构造函数()”来生成多个实例。但是,如果将类的构造函数设为私有的,外部类就无法调用该构造函数,也就无法生成多个实例。这时该类自身必须定义一个静态私有实例,并向外提供一个静态的公有函数用于创建或获取该静态私有实例。 下面来分析其基本结构和实现方法。 1. 单例模式的结构 单例模式的主要角色如下。 单例类:包含一个实例且能自行创建这个实例的类。 访问类:使用单例的类。 其结构如图 1 所示。 图1