单例模式是一种特殊的工厂方法模式,它适用于一个类只有一个实例的情况,比如窗口管理器,打印缓冲池和文件系统。典型的情况是,那些对象的实例能够被整个软件系统的不同对象访问,因此需要一个全局的访问指针,这便是众所周知的单例模式的应用。当然这只有在不再需要任何多于一个的实例的情况下出现。
通过单例模式你可以:
●确保一个类只有一个实例被建立。
●提供了一个对对象的全局访问指针。
●在不能影响单例类的客户端的情况下允许将来有多个实例。
单例模式的实例在全局中有且只有一个,并且该实例必须由自身创建,不能够被克隆。为了满足这些要求,一个标准的单例模式需要包含如下4个要素:
(1)拥有一个私有的静态实例,该实例禁止外部访问。
(2)拥有私有的默认构造函数,防止使用构造函数进行实例化。
(3)拥有一个静态工厂方法,并且必须是同步的,防止多线程环境同时执行。
(4)重写clone()函数,并返回当前实例对象,默认的clone()函数会创建新的实例。
根据以上4点要求,完成的标准单例模式代码如下:
public class SingletonFactory{
//(1)私有的防止外部引用
private static SingletonFactory _instance = null;
//(2)私有的默认构造函数,防止使用构造函数进行实例化
private SingletonFactory(){}
//(3)单例静态工厂方法,同步防止多线程环境同时执行
synchronized public static SingletonFactory getInstance(){
if(_instance == null){
_instance = new SingletonFactory();
}
return _instance;
}
//(4)重写clone()函数,默认的该函数会创建新的实例
public SingletonFactory clone(){
return getInstance();
}
}
使用单例模式有一个前提条件:就是在一个系统中某一个类的实例必须只有一个,如果可以有多个实例存在,就不能够使用单例模式。以上的说法比较抽象,具体的可以应用在如下场景:
●系统的全局变量,存储区域
●系统的全局配置文件
●系统的全局操作函数
由此可见,只要希望在全局使用一个统一的对象,就可以使用单例模式。
java中的应用----日历单例类Calendar.
分享到:
相关推荐
//单例模式,始终只产生一个对象 /*public class SingleTest { public static void main(String[] args) { SingleTon singleTon1=SingleTon.getInstance(); SingleTon singleTon2=SingleTon.getInstance(); ...
入名所示,该文件为最详细的Java单例模式讲解并附有讲解代码。主要讲了单例模式的几种方法,懒汉模式、饿汉模式、静态内部类模式。着重讲解了懒汉模式下怎么实现线程安全。饿汉模式和静态内部类模式如何设置能够避免...
java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂
主要介绍了Java设计模式单例模式(Singleton)用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
单例模式和工厂模式结合应用,实现了产品的生产,适合用做课程设计,包含详细文档和代码。Java语言。喜欢的可以下载来看看那
Java中懒汉单例设计模式线程安全测试,单例设计模式的测试
java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂 第二部分
Java设计模式-单例模式详解
JAVA设计模式之单例模式。 一篇文章带你快速了解!
二十三种设计模式Java版之单例模式 单例模式博文地址:https://blog.csdn.net/program_highway/article/details/124485842
java设计模式之单例模式
目录 单例模式的概念 单例模式的要点 单例模式类图 单例模式归类 单例模式的应用场景 单例模式解决的问题 单例模式的实现方式 单例模式实现方式对比 单例模式的概念 单例模式,顾名思义就是只有一个实例,并且由它...
是http://blog.csdn.net/lxq_xsyu/article/category/1544127博客中java设计模式的源代码。下载前请先看《设计模式——单例模式》一文。
JAVA设计模式之单例模式(完整版)1[定义].pdf
计算机后端-Java-图解java设计模式037 单例模式JK.avi
java设计模式,单例模式学习示例源码,创建单例,配置文件读取
java设计模式之单例模式,通过例子说明8种单例设计模式。
java 设计模式 单例模式 工厂模式 命令模式 模式解析 各种模式的最全面的解析 最朴实的话语
设计模式 java设计模式-单例.pdf
java设计模式之单例模式详解,包含例子,详解。