`
nightbin0420
  • 浏览: 8889 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

单例模式的两种实现方式及区别

阅读更多

 1:类加载时进行对象的实例化:

public class SingletonA {
 

 //SingletonA的唯一实例
 private static SingletonA instance = new SingletonA();
 
 //将构造函数私有,防止外界构造SingletonA实例
 private SingletonA() {
 }
 /**
  * 获取SingletonA的实例
  */
 public static SingletonA getInstance() {
  return instance;
 }

}

2:第一次访问时进行对象的实例化

public class SingletonB {
 

 //SingletonB的唯一实例
 private static SingletonB instance = null;
 
 //将构造函数私有,防止外界构造SingletonB实例
 private SingletonB() {
 }
 //获取SingletonB的唯一实例,用synchronized关键字保证某一时刻只有一个线程调用此方法。
 public static synchronized SingletonB getInstance() {
  //如果instance为空,便创建一个新的SingletonB实例,否则,返回已有的实例
  if (instance == null) {
   instance = new SingletonB();
  }
  return instance;
 }

}

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jun_yuner/archive/2007/12/10/1927621.aspx
 

分享到:
评论

相关推荐

    单例模式代码实现

    这个讲的是单例模式的多种不同实现方式,希望对单例感兴趣的同学看看

    JAVA单例模式的几种实现方法

    ### JAVA单例模式的几种实现方法 #### 一、饿汉式单例类 饿汉式单例类是在类初始化时就已经完成了实例化的操作。这种实现方式简单且线程安全,因为实例化过程是在编译期间完成的,不会受到多线程的影响。 **代码...

    两种单例实现方式

    在 Java 中,单例模式可以通过两种方式来实现:类加载时进行对象的实例化和第一次访问时进行对象的实例化。 类加载时进行对象的实例化 在这种方式下,单例对象是在类加载时实例化的。下面是一个简单的示例代码: ...

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

    "设计模式单例模式和工厂模式综合应用"的主题聚焦于两种常用的设计模式:单例模式和工厂模式,并探讨它们如何协同工作来实现高效、灵活的代码结构。这个主题尤其适用于Java编程语言,因为Java的面向对象特性使得设计...

    三种工厂设计模式和两种单例模式

    在本文中,我们将深入探讨三种工厂设计模式——简单工厂模式、抽象工厂模式和工厂方法模式,以及两种单例模式——饿汉单例模式和懒汉单例模式。这些模式都是面向对象设计中的重要组成部分,对于理解和构建可维护、可...

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

    单例模式是软件设计模式中的一种经典模式,它...通过阅读和分析这些代码,你可以更深入地理解这两种模式的实现细节及其在实际开发中的作用。同时,也可以尝试自己编写并测试不同的单例实现,以加深对单例模式的理解。

    C++两种线程安全的单例模式的实现

    使用"懒汉模式"与"饿汉模式"实现c++的单例模式,并且确保了单例模式的第一次实例化的线程安全,以及程序结束时,单例对象的资源收回,以防内存资源的泄漏

    五种单例模式

    在Java、C#等面向对象语言中,实现单例模式有多种方法,下面我们将详细探讨五种常见的单例模式实现方式: 1. **饿汉式单例**: 这种方式是在类加载时就完成实例化,避免了线程同步问题。由于实例在类加载时已经...

    设计模式——单例模式

    实现单例模式主要有两种方式:饿汉式和懒汉式。 ### **饿汉式单例模式** 饿汉式单例模式在类加载时就完成了实例化,因此也称为静态初始化。这种方式保证了线程安全,但可能会造成不必要的资源浪费,因为即使未使用...

    Java多线程中的单例模式两种实现方式

    Java多线程中的单例模式两种实现方式 单例模式是Java中一种常用的设计模式,用于限制一个类只能有一个实例对象。然而,在多线程环境下,单例模式的实现变得更加复杂。 Java多线程中的单例模式两种实现方式主要介绍...

    设计模式单例模式

    单例模式是软件设计模式中的一种基础且广泛应用的模式,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式在系统中需要频繁创建和销毁对象,且对象创建成本较高,或者需要共享资源的情况下非常...

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

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

    设计模式——策略模式 & 单例模式

    - **获取单例实例的方法**:一般有两种实现方式,懒汉式(延迟初始化,线程不安全)和饿汉式(提前初始化,线程安全)。为了在多线程环境下保证线程安全,还可以采用双检锁/双重校验锁定(DCL,Double-Check ...

    设计模式之单例模式Java实现和类设计图

    本次我们将深入探讨两种设计模式——单例模式和装饰模式,它们在Java编程中都有着广泛的应用。 首先,让我们来理解“单例模式”。单例模式是一种创建型设计模式,其核心思想是保证一个类只有一个实例,并提供一个...

    设计模式-单例模式(讲解及其实现代码)

    实现单例模式有多种方式,下面详细介绍几种常见的实现方法: 1. **饿汉式(静态常量)**: 在类加载时就创建了单例对象,这种方式简单且线程安全,但由于类加载时就完成了初始化,所以即使没有使用,也会消耗内存...

    单例模式.ppt

    每种实现方式都有其优缺点,选择哪种方式取决于特定的应用场景,如性能需求、线程安全性和代码简洁性等因素。单例模式虽然方便,但过度使用可能导致设计复杂度增加,不易测试,以及违反了单一职责原则,因此在实际...

    Qt使用MVC、数据库单例模式实现登录注册

    SQLite3则是一个轻量级的嵌入式数据库,而MVC和单例模式是软件设计中的两种重要概念。 首先,让我们理解MVC设计模式。MVC将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。模型...

    使用单例模式创建学生管理系统(饿汉式、懒汉式)

    在这个场景中,我们将探讨如何使用单例模式来创建一个学生管理系统,主要涉及“饿汉式”和“懒汉式”两种实现方式。 **饿汉式单例** 饿汉式单例在类加载时就完成了实例化,因此它是线程安全的。这种方式保证了单例...

Global site tag (gtag.js) - Google Analytics