单例模式是一种特殊的工厂方法模式,它适用于一个类只有一个实例的情况,比如窗口管理器,打印缓冲池和文件系统。典型的情况是,那些对象的实例能够被整个软件系统的不同对象访问,因此需要一个全局的访问指针,这便是众所周知的单例模式的应用。当然这只有在不再需要任何多于一个的实例的情况下出现。
通过单例模式你可以:
●确保一个类只有一个实例被建立。
●提供了一个对对象的全局访问指针。
●在不能影响单例类的客户端的情况下允许将来有多个实例。
单例模式的实例在全局中有且只有一个,并且该实例必须由自身创建,不能够被克隆。为了满足这些要求,一个标准的单例模式需要包含如下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设计模式单例模式(Singleton)用法解析 java设计模式单例模式(Singleton)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局反访问点。单例模式是创建型模式。单例模式在生活中应用也很广泛,...
"设计模式单例模式和工厂模式综合应用"的主题聚焦于两种常用的设计模式:单例模式和工厂模式,并探讨它们如何协同工作来实现高效、灵活的代码结构。这个主题尤其适用于Java编程语言,因为Java的面向对象特性使得设计...
入名所示,该文件为最详细的Java单例模式讲解并附有讲解代码。主要讲了单例模式的几种方法,懒汉模式、饿汉模式、静态内部类模式。着重讲解了懒汉模式下怎么实现线程安全。饿汉模式和静态内部类模式如何设置能够避免...
单例模式是软件设计模式中的一种经典模式,用于确保一个类只有一个实例,并提供一个全局访问点。在Java中,有多种实现单例模式的方法,每种都有其特点和适用场景。接下来,我们将深入探讨这些实现方式。 首先,我们...
Java中懒汉单例设计模式线程安全测试,单例设计模式的测试
本篇文章将对标题与描述中提到的几个关键Java设计模式进行深入分析。 首先,让我们来看一下MVC模式,这是一种广为接受的架构模式,用于构建用户界面。在MVC模式中,Model层管理数据以及业务逻辑,View层负责将数据...
设计模式 单例模式 java
Java设计模式-单例模式详解 单例模式是 Java 设计模式中的一种常用的设计模式,旨在保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式的目的是为了保证在一个进程中,某个类有且仅有一个实例。 ...
在Java编程中,单例模式是一种常用的软件设计模式,它保证一个类只有一个实例,并提供一个全局访问点。这种模式在需要频繁创建和销毁对象的场景中尤其有用,因为它可以节省系统资源并确保对象间的协调一致。以下是...
Java作为一款广泛应用的面向对象的编程语言,其设计模式的应用对于编写可维护、可扩展和高效的代码至关重要。本篇将深入探讨标题中提及的几种设计模式:Model-View-Controller(MVC)模式、单例模式、代理模式以及...
Java设计模式是面向对象编程中的重要概念,它们是软件开发中经过验证的、解决常见问题的最佳实践。在这些模式中,单例模式是最为广泛使用的一种。单例模式确保一个类只有一个实例,并提供一个全局访问点,使得在整个...
单例模式是软件设计模式中的一种基础且广泛应用的模式,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式在系统中需要频繁创建和销毁对象,且对象创建成本较高,或者需要共享资源的情况下非常...
单例模式是软件设计模式中的一种经典模式,它在Java编程中被广泛使用,尤其是在需要控制实例化过程,或者确保某类只有一个实例时。本文将深入探讨Java中的单例模式,帮助你理解其原理和应用。 单例模式的核心思想是...
目录 单例模式的概念 单例模式的要点 单例模式类图 单例模式归类 单例模式的应用场景 单例模式解决的问题 单例模式的实现方式 单例模式实现方式对比 单例模式的概念 单例模式,顾名思义就是只有一个实例,并且由它...
Java设计模式之单例模式的七种写法 单例模式是一种常见的设计模式,它确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机的驱动程序对象常...
**设计模式——单例模式** 在软件工程中,设计模式是一种在特定场景下解决常见问题的标准方案,可以被复用并提升代码质量。单例模式是设计模式中的一种,它保证一个类只有一个实例,并提供一个全局访问点。这种模式...
JAVA设计模式之单例模式(完整版)1[定义].pdf
计算机后端-Java-图解java设计模式037 单例模式JK.avi
单例模式是软件设计模式中的一种经典模式,它保证了类只有一个实例存在,并提供一个全局访问点。在Java等面向对象编程语言中,单例模式常用于管理共享资源,如数据库连接池、线程池或者配置文件等。结合工厂模式,...