`
xiaotao.2010
  • 浏览: 217885 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

设计模式--单例模式

 
阅读更多
   今细阅单例,收获纷多,暂此记下,日后回首。

    1、饿汉单例

JVM运行时则加载该单例(最常用),不用考虑线程安全等问题
public class HungrySingleton { 

 public class EagerSingleton { 

    private static final EagerSingleton eagerSingleton = new EagerSingleton(); 

    private EagerSingleton(){
    } 

    public static EagerSingleton getInstance() { 
     
      return eagerSingleton; 
    } 

}


   2、懒汉单例
程序使用到的时候加载,本程序中需要考虑线程安全问题,所以加入的synchronized (锁)机制,同时采用了DCL验证机制。

public class Singleton { // 懒汉式单例   
	  
    private static Singleton singleton = null;   
  
    private Singleton() {   
    }   
  
    public static Singleton getInstance() {  
    	//Double-Check Locking 保证线程安全
        if (singleton == null) {   
            synchronized (Singleton.class) {   
                            if(singleton == null) {   
                singleton = new Singleton();   
                             }   
            }   
        }   
        return singleton;   
    }   
}  



  3、内部类实现单例 (可以使用在面试时show技术方面)
参考:Spring in action 2nd 中的实例
样确保线程安全的同时, 比上面创建静态实例域的办法还有一个好处就是: 
SingletonHolder中可以使用静态方法替换静态域, 实现比较复杂的逻辑, 而不仅仅是new Singleton()这样简单地调用构造方法.

public class Singleton {
    private Singleton() {}

    private static class SingletonHolder {
        static Singleton instance = new Singleton();
    }

    public static Singleton getInstance() {
        return SingletonHolder.instance;
    }
}


分享到:
评论

相关推荐

    ava常用设计模式-单例模式

    ava常用设计模式-单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,有以下特点: 1. 单例类只能有一个实例。 2. 单例类必须自己创建自己的唯一实例。 3. 单例类必须给所有其他对象提供这一...

    常见设计模式-单例模式

    单例模式是设计模式中的一种,其主要目的是确保一个类只有一个实例,并且提供一个全局访问点来获取这个实例。在Java编程中,实现单例模式有多种方式,每种方式都有其优缺点。 1. **饿汉式**: 饿汉式在类加载时即...

    Java设计模式-单例模式详解

    Java设计模式-单例模式详解 单例模式是 Java 设计模式中的一种常用的设计模式,旨在保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式的目的是为了保证在一个进程中,某个类有且仅有一个实例。 ...

    c++设计模式-单例模式

    **单例模式**是软件设计模式中的一种,属于创建型模式。在C++中,单例模式确保一个类只有一个实例,并提供一个全局访问点。这种模式通常用于管理共享资源,如数据库连接、日志系统或者配置文件等。单例模式的主要...

    java设计模式-单例.pdf

    ### Java设计模式——单例模式详解 #### 一、单例模式概述 单例模式是设计模式中的一个重要组成部分,属于创建型模式之一。其主要作用是确保某个类仅有一个实例存在,并提供一个全局访问该实例的方法。这在很多场景...

    设计模式-单例模式

    **设计模式——单例模式** 单例模式是一种广泛应用于软件设计中的创建型设计模式,它的核心思想是确保一个类只有一个实例,并提供一个全局访问点。这样做的好处在于控制共享资源的访问,比如线程安全的数据库连接池...

    设计模式--单例模式java例子

    单例模式是软件设计模式中的一种经典模式,它在Java编程中被广泛使用。这个模式的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这样做的好处在于可以控制实例的数量,减少资源消耗,同时便于协调整个...

    设计模式-单例模式脑图

    设计模式-单例模式脑图

    C++设计模式-单例模式

    李建忠老师的设计模式-单例模式讲解,示例以C++编程语言呈现。

    JAVA-设计模式-创建型模式-单例模式

    JAVA-设计模式-创建型模式-单例模式

    设计模式-Java单例模式的各种实现实例

    单例模式(Singleton Pattern)是一种常用的软件设计模式,它保证一个类仅有一个实例,并提供一个访问该实例的全局访问点。这种模式通常用于需要频繁地创建和销毁的对象,以减少系统性能开销。 单例模式的优点: ...

    通过C++实现设计模式-单例模式.rar

    压缩包代码是一个简单的C++单例模式实现。 在这个例子中,Singleton 类有一个私有的构造函数和一个私有的析构函数,这防止了外部代码直接创建或销毁实例。getInstance 方法是一个静态方法,它返回一个指向 Singleton...

    1.设计模式-单例设计模式1

    单例设计模式是一种常用的设计模式,其主要目的是确保一个类只有一个实例,并提供全局访问点。在Java中,实现单例模式通常有多种方式,包括懒汉模式、饿汉模式、静态内部类以及枚举类型。 1. **懒汉模式**: 懒汉...

    JavaScript设计模式---单例模式详解【四种基本形式】

    以上四种单例模式在JavaScript中都有其适用的场景,开发者可以根据实际需求选择合适的设计模式。单例模式在JavaScript中的应用广泛,比如管理DOM元素、提供全局配置、控制页面的公共资源等。理解并熟练运用单例模式...

    C# 设计模式系列教程-单例模式

    2. 单例模式主要有3个特点,:  2.1 单例类确保自己只有一个实例。  2.2 单例类必须自己创建自己的实例。  2.3 单例类必须为其他对象提供唯一的实例。 3. 实现方式:懒汉单例类和饿汉单例类  3.1 懒汉式单例类...

    设计模式实验报告-单例模式 .docx

    设计模式实验报告

    单例设计模式--浅浅笔记

    总的来说,单例模式是设计模式中的一种基础模式,它在软件开发中广泛应用,能帮助我们更好地管理和控制对象的生命周期。不过,过度依赖单例也可能导致设计过于紧密,不利于单元测试和解耦,因此在使用时需要权衡利弊...

    C#设计模式学习与演变过程-2-单例模式

    单例模式是软件设计模式中的一种经典模式,它旨在确保一个类只有一个实例,并提供一个全局访问点。在C#编程中,单例模式的应用广泛,特别是在需要频繁实例化然后销毁的对象,或者创建对象需要消耗大量资源的情况下,...

    iOS 设计模式 -单例

    在iOS开发中,设计模式是解决常见编程问题的模板,为代码组织提供了标准结构。其中,单例模式是一种被广泛使用的模式,它确保一个类在整个应用程序中只有一个实例,并且提供了一个全局访问点来获取这个实例。这样的...

Global site tag (gtag.js) - Google Analytics