`

Singleton design pattern

阅读更多
定义:
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。

第一种形式:
public class Singleton{

    private Singleton(){};
    private static singleton = new Singleton();
    public staic Singleton getInstance(){
       return singleton;
    }
}
第二种形式:

public class Singleton{

   private Singleton singleton = null;
   public static synchronized Singleton getInstance(){
      if(singleton == null){
         singleton = new Singleton();
      }
      return singleton;
   }
}
    第二种形式是lazy initialization,也就是说第一次调用时初始Singleton,以后就不用再生成了。
    注意到lazy initialization形式中的synchronized,这个synchronized很重要,如果没有synchronized,那么使用getInstance()是有可能得到多个Singleton实例。

使用Singleton注意事项:
    有时在某些情况下,使用Singleton并不能达到Singleton的目的,如有多个Singleton对象同时被不同的类装入器装载;在EJB这样的分布式系统中使用也要注意这种情况,因为EJB是跨服务器,跨JVM的。
    Singleton模式看起来简单,使用方法也很方便,但是真正用好,是非常不容易,需要对Java的类、线程、内存等概念有相当的了解。





分享到:
评论

相关推荐

    Design*Pattern*Framework*4.5

    "Design*Pattern*Framework*4.5" 可能指的是一个基于 .NET Framework 4.5 的设计模式实现或教程集合。 设计模式是经验丰富的软件开发者的智慧结晶,它们被分为三类:创建型、结构型和行为型。创建型模式涉及对象的...

    design pattern

    在给定的压缩包文件中,包含了九种经典的设计模式示例,它们分别是:单例模式(Singleton)、策略模式(StrategyPattern)、适配器模式(AdapterPattern)、装饰者模式(DecoratorPattern)、抽象工厂模式...

    Design Pattern英文版

    设计模式(Design Pattern)是软件工程中的一种经验总结,它是在特定上下文中为解决常见问题而提出的一套可复用的解决方案。设计模式并不直接实现为代码,而是提供了一种在面向对象设计中如何处理常见问题的指南。...

    C++设计模式(Design Pattern)范例源代码

    23种设计模式(Design Pattern)的C++实现范例,包括下面列出的各种模式,代码包含较详细注释。另外附上“设计模式迷你手册.chm”供参考。 注:项目在 VS2008 下使用。 创建型: 抽象工厂模式(Abstract Factory) 生成...

    设计模式源码Head_First_DesignPattern_src

    在本文中,我们将深入探讨设计模式的核心概念,并结合"Head First DesignPattern_src"中的源码,详细解析一些关键的设计模式。 1. 单例模式(Singleton): 单例模式确保一个类只有一个实例,并提供全局访问点。在...

    Head First Design Pattern

    1. 创建型设计模式:如单例模式(Singleton)、工厂方法模式(Factory Method)、抽象工厂模式(Abstract Factory)、建造者模式(Builder)和原型模式(Prototype)。这些模式主要关注对象的创建过程,帮助我们控制...

    Design Pattern 简明手册

    ### Design Pattern 简明手册知识点详述 #### 一、接口型(interface)模式 **1. Adapter(适配器模式)** - **定义**:允许一个类接口与另一个不兼容的类接口协同工作。 - **分类**: - **继承型Adapter**:通过...

    designpattern.zip

    本资源"designpattern.zip"包含了对Java中23种经典设计模式的详细讲解和代码实例,对于中高级Java工程师来说,是提升开发技能的必备学习材料。 设计模式通常分为创建型、结构型和行为型三大类。创建型设计模式关注...

    design pattern tutorial

    3. 单例模式(Singleton Pattern):确保一个类只有一个实例,并提供一个全局访问点。单例模式是设计模式中最简单但又非常重要的模式之一。 4. 建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离...

    JAVA software design pattern

    1. **单例模式(Singleton)**:保证一个类只有一个实例,并提供一个全局访问点。防止多个实例的创建,通常用于配置中心、日志服务等场景。 2. **工厂模式(Factory Method)**:定义一个用于创建对象的接口,让...

    Software Architecture Design Pattern In Java

    1. **单例模式(Singleton Pattern)**: - 定义:确保一个类只有一个实例,并提供一个全局访问点。 - 应用场景:适用于配置管理、线程池等需要全局唯一对象的场合。 2. **工厂模式(Factory Pattern)**: - ...

    DesignPattern.zip

    "DesignPattern.zip"这个压缩包包含了使用C++语言实现的设计模式源代码,适合在Visual Studio 2017环境下编译运行,并且能够方便地移植到Linux平台。下面将对设计模式及其在C++中的应用进行详细阐述。 1. **单例...

    designPattern-java.pdf

    《Design Patterns Java Companion》一书由James W. Cooper撰写,于1998年出版,是一本针对Java程序员的经典参考书。本书主要介绍了设计模式的基本概念,并深入探讨了几种关键的设计模式。 #### 创建型模式 创建型...

    design pattern中文版

    "Design Pattern中文版" 提供的是这些经典设计模式的中文解释,使得中国的开发者能够更方便地理解和应用这些模式。这份资料的描述指出字迹清晰,意味着阅读体验良好,适合深入学习。 PDF格式是一种广泛使用的文档...

    Professional ASP.NET Design Pattern 源代码

    《Professional ASP.NET Design Pattern》是一本深入探讨ASP.NET开发中设计模式的专业书籍,源代码的提供使得读者能够更直观地理解和应用这些设计模式。源代码的分章节组织(如c07到c14)表明内容可能按照书中的章节...

    Swift DesignPattern

    本资料"Swift DesignPattern"包含了一些Swift语言中的常见设计模式实例,下面我们将详细探讨这些设计模式及其在Swift中的应用。 1. **单例模式(Singleton)**:单例模式确保一个类只有一个实例,并提供全局访问点...

    Gof design pattern 中文/英文版+web+学习笔记

    1. **单例模式(Singleton)**:确保一个类只有一个实例,并提供全局访问点。这样可以控制资源的创建与管理,如数据库连接池。 2. **工厂方法模式(Factory Method)**:定义一个用于创建对象的接口,让子类决定...

Global site tag (gtag.js) - Google Analytics