`
lilongping269
  • 浏览: 43944 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

单例模式的学习

 
阅读更多
单例模式单例模式是一种常见的设计模式。
常见的单例模式:懒汉式单例、饿汉式单例。
单例模式有一下特点:
1、单例类只能有一个实例。
2、单例类必须自己自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。

饿汉:因为加载类的时候就创建实例,所以线程安全(多个ClassLoader存在时例外)。缺点是不能延时加载。
懒汉:需要加锁才能实现多线程同步,但是效率会降低。优点是延时加载。

懒汉式单例在类加载的时候不创建单例实例。只有在第一次请求实例的时候的时候创建,并且只在第一次创建后,以后不再创建该类的实例。
/***单例模式-懒汉式单例*/
public class EagerSingleton {     
    /**私有的(private)唯一(static final)实例成员,在类加载的时候就创建好了单例对象*/
    private static final EagerSingleton m_instance = new EagerSingleton();
    /*** 私有构造方法,避免外部创建实例      */     
    private EagerSingleton() {}
    /*** 静态工厂方法,返回此类的唯一实例.* @return EagerSingleton      */     
    public static EagerSingleton getInstance() {
       return m_instance;     
    }
}


饿汉式单例在类被加载的时候,唯一实例已经被创建。这个设计模式在Java中容易实现,在别的语言中难以实现。
public class Singleton{   
    private static Singleton instance=null;   
    /*  
     * 首先单例模式只能存在一个实例  
     * 所以构造函数必须私有  
     */  
    private Singleton(){}   
    /*  
     * 然后外部必须能够访问到一个方法获取这个单例的对象  
     * 因此这个方法必须是共有的静态方法  
     */    
    public synchronized static Singleton getInstance(){   
        if(null == instance){   
            instance=new Singleton();   
        }   
        return instance;   
    }   
}  

分享到:
评论

相关推荐

    设计模式单例模式PPT学习教案.pptx

    设计模式单例模式学习教案 单例模式概述 单例模式是设计模式中的一种,用于确保一个类只有一个实例,并提供一个全局访问点来访问这个唯一实例。这种模式对对象的创建和访问进行了限制,以确保系统中只有一个实例...

    单例模式学习笔记

    单例模式是软件设计模式中的一种,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于管理共享资源,如数据库连接、线程池或配置对象。在Java或其他面向对象语言中,单例模式的实现有多种...

    设计模式单例模式和工厂模式综合应用

    总的来说,这个项目为学习和理解单例模式和工厂模式在实际开发中的应用提供了一个很好的示例。通过结合这两种模式,可以构建出既保证了对象唯一性,又能灵活应对不同产品创建需求的系统。对于Java开发者来说,深入...

    java设计模式,单例模式学习示例源码,创建单例,配置文件读取

    单例模式是23种经典设计模式之一,它确保一个类只有一个实例,并提供一个全局访问点。这个模式在很多场景下非常有用,比如控制资源的共享,如数据库连接池,或者创建昂贵的对象时避免频繁实例化。 单例模式的基本...

    设计模式之单例模式(结合工厂模式)

    在项目中,`src`目录可能包含了这些设计模式的源码示例,可以用来学习和理解如何实际应用单例模式和工厂模式。通过阅读和分析这些代码,你可以更深入地理解这两种模式的实现细节及其在实际开发中的作用。同时,也...

    单例模式学习

    自己对于单例模式的一些学习总结

    java单例模式实例

    单例模式是软件设计模式中的一种经典模式,用于确保一个类只有一个实例,并提供一个全局访问点。...通过学习和实践这些单例模式的实现,我们可以更好地理解和应用设计模式,提升代码的质量和可维护性。

    设计模式C++学习之单例模式(Singleton)

    单例模式是软件设计模式中的一种,它保证一个类只有一个实例,并提供一个全局访问点。在C++中,实现单例模式有多种方法,我们将会深入探讨这一模式的原理、优缺点以及如何在实际编程中应用。 单例模式的核心在于...

    单例模式,single

    ### 单例模式详解 #### 概述与应用场景 单例模式是一种常用的设计模式,它的主要目的是确保某个类仅有一个实例...通过上述讨论,我们可以看到单例模式在不同场景下的适用性及其潜在问题,并学习到了相应的解决方案。

    设计模式 中的 单例模式和观察者模式

    在给定的标题和描述中,我们关注的是两种重要的设计模式:单例模式和观察者模式。 首先,让我们深入了解单例模式。单例模式是一种确保一个类只有一个实例,并提供全局访问点的设计模式。这种模式在资源管理、缓存、...

    实用Java的单例模式,实用于Java学习者

    实用Java的单例模式,实用于Java学习者 单例模式 单例模式

    单例模式代码.rar

    在压缩包文件"课堂演示代码"中,可能包含了以上各种单例模式实现的示例代码,供学习者理解和实践。通过这些代码,你可以亲手运行并观察不同实现方式的效果,进一步理解单例模式的工作原理及其在Java中的应用。

    单例模式(用winform写的)

    通过分析这个示例代码,我们可以学习如何将单例模式融入到实际项目中,了解如何创建和使用单例类,以及如何在Winform的环境中处理多线程问题。 单例模式的优点包括: 1. 节省内存:避免了多次实例化同一对象。 2. ...

    单例模式源代码

    单例模式是软件设计模式中的一种经典模式,它在Java编程中被广泛使用。这个模式的主要目的是确保一个类只有一个实例...了解并掌握这些单例模式的实现方式,对于后续学习其他设计模式以及提高代码质量都是非常有帮助的。

    java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂 第二部分

    本篇将深入探讨标题中提及的几种设计模式:Model-View-Controller(MVC)模式、单例模式、代理模式以及工厂模式,尤其是简单工厂模式。 **1. Model-View-Controller (MVC) 模式** MVC模式是一种架构模式,它将应用...

    Qt单例模式MySQL连接池.rar

    本资源"Qt单例模式MySQL连接池.rar"提供了一个使用Qt框架并结合C++单例模式实现的MySQL数据库连接池模板,旨在优化Qt数据库开发的效率。 首先,我们来理解一下“单例模式”。单例模式是一种设计模式,它确保一个类...

    java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂

    例如,MVC模式在Web应用开发中非常常见,单例模式常用于日志服务、数据库连接池等需要全局唯一的场景,代理模式可以用于数据访问控制,工厂模式则用于解耦对象的创建和使用。通过学习和实践这些模式,开发者可以更好...

    单例模式与装饰着模式.md

    通过学习java 简单总结单例模式与装饰者模式,做一下入门总结,主要讲述单例模式中饿汉式与懒汉式的相同点与不同点,方便理解记忆。

    最简单的单例模式源码

    单例模式是软件设计模式中的一种基础且常用模式,它保证了类只有一个实例,并提供一个全局访问点。这种模式在需要频繁创建和...通过`Singleton.java`文件,我们可以学习到如何在Java中实现一个简单的懒汉式单例模式。

Global site tag (gtag.js) - Google Analytics