`
catmimigo
  • 浏览: 8535 次
  • 性别: Icon_minigender_1
  • 来自: 天津
最近访客 更多访客>>
社区版块
存档分类
最新评论

单列模式(singleton)(转)

 
阅读更多
一、介绍

单例模式是一种比较普遍和简单的模式,在我们的程序中经常会用到。简单的说就是,单例模式就是让一个类永远只对外发布唯一的实例(Instance)。


二、实例

在本模式中介绍的例子中,SingleSpoon类拥有一个实例,声明为静态(static)私有(private)变量"instance",核心代码内容如下:

package com.cvicse.daofactory;   
/**  
 * 单列模式练习  
 * @author yinchunjian  
 *  
 */  
public class SingleSpoon {   
    private static SingleSpoon instance;   
    private SingleSpoon(){   
        //内部可以做一些初始化成员变量的操作   
    }   
    public static synchronized SingleSpoon getInstance(){   
         if (instance == null) {          
               instance = new SingleSpoon();          
           }          
           return instance;      
    }    
}  



三、分析

创建一个单例模式,需要注意的是:
1、实例变量应该是静态的私有的。
2、外部调用该实例时,不是通过类的构造方法,而是通过一个getInstance()这样的静态方法来创建该类的唯一实例。
3、默认的构造方法应该是私有的。
4、单例模式并不是线程安全的,要实现这一点,必须在getTheSpoon()方法前面添加一个同步关键字synchronized。

5、什么时候使用单列模式

(1)读取配置文件的类用单例,配置文件只要读取一次就可以全局使用了, 没有必要想读取一个属性值时,去创建一个实例重读配置文件的。

(2)并且对配置文件进行存储操作的时候,如果实例多了,会造成不同步

分享到:
评论

相关推荐

    单列模式用例

    单列模式(Singleton Pattern)是设计模式中的一种经典模式,主要用来确保一个类只有一个实例,并提供一个全局访问点。这种模式常被用于控制资源的共享,例如配置管理、线程池或者数据库连接池等场景。在Java编程...

    C#单列模式

    单例模式是软件设计模式中的一种经典模式,它在C#编程中被广泛使用,尤其在需要确保一个类只有一个实例并且提供全局访问点时。单例模式的主要目标是控制类的实例化过程,保证在整个应用程序运行期间,该类只创建一个...

    c#单例模式(Singleton)的6种实现

    如:IO处理,数据库操作等,由于这些对象都要占用重要的系统资源,所以我们必须限制这些实例的创建或始终使用一个公用的实例,这就是我们今天要介绍的——单例模式(Singleton)。  使用频率高 单件模式(Singleton...

    单例模式的几种实现方式demo

    单例模式是软件设计模式中的一种,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式在很多场景下都非常有用,比如控制数据库连接、缓存管理、线程池等。下面我们将深入探讨单例模式的几种实现...

    设计模式之单例模式

    单例模式是软件设计模式中的一种经典模式,它在许多实际场景中被广泛使用,尤其在需要控制类的实例只有一个的情况下。单例模式确保无论在程序的任何地方,只要通过特定方式请求创建该类的对象,始终只会返回同一个...

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

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

    单例模式详解

    单例模式详解 单例模式是 Java 设计模式中的一种常见模式,旨在保证整个应用中只有一个类的实例存在。单例模式分为三种:懒汉式单例、饿汉式单例、登记式单例。下面对单例模式的特点、实现方式和应用场景进行详细...

    单列模式详解

    单例模式是设计模式中的一种常见模式,主要应用于确保一个类只有一个实例,并提供一个全局访问点。这种模式在软件工程中极为有用,特别是在资源管理、线程池、数据库连接等场景下,能够有效地控制资源的消耗,提高...

    单例模式演示PPT和实例

    单例模式的名称是“Singleton”,来源于英文单词“单一”。在Java语言中,实现单例模式主要有三种方式: 1. **饿汉式**(Eager Initialization):这是最简单的实现方式,类加载时就创建了单例实例。这样保证了线程...

    qt 单例模式,模板

    3. **Singleton类**:在提供的描述中提到了`Singleton.h`和`SingletonCallOnce.h`,这是实现单例模式的头文件。通常,单例类包含一个私有的构造函数和一个静态方法,该方法返回单例的实例。这样,用户就不能通过常规...

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

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

    Qt单例设计模式(1-8)

    在软件开发中,设计模式是一种在特定情境下解决常见问题的经验总结,被广泛应用于各种编程语言中。在Qt框架中,单例设计模式是一种经常被用到的设计模式,它确保一个类只有一个实例,并提供全局访问点。这个模式在...

    浅谈.net core 注入中的三种模式:Singleton、Scoped 和 Transient

    在.NET Core中,我们可以利用DI来管理服务的生命周期,而服务的生命周期主要由三种模式决定:Singleton、Scoped和Transient。下面将详细介绍这三种模式。 1. Singleton(单例模式) Singleton模式意味着在整个应用...

    C++实现单例模式(懒汉式)源码

    单例模式是软件设计模式中的一种,用于控制类的实例化过程,确保一个类只有一个实例,并提供全局访问点。在C++中,实现单例模式有多种方式,这里我们将聚焦于懒汉式(Lazy Initialization)的实现。懒汉式单例的特点...

    单例模式.txt

    根据提供的文件信息,我们可以推断出此文档主要讨论的是单例设计模式,但实际上提到了简单工厂模式。然而,由于【部分内容】中包含了一些无法识别的文字,我们无法直接从中提取具体的信息。因此,我们将基于【标题】...

    php基础设计模式大全(注册树模式、工厂模式、单列模式)

    1. 单例模式(Singleton Pattern): 单例模式的主要目的是确保一个类只有一个实例,并提供一个全局访问点。它通常包含一个类级别的私有静态变量来保存类的实例,并对外提供一个静态方法来获取这个实例。在PHP中,...

    QT静态单例管理信号和槽

    QT静态单例管理信号和槽是Qt框架中一种常见的设计模式,用于确保应用程序中只有一个特定类的实例。在Qt编程中,单例模式通常用于管理全局资源,如数据库连接、配置文件读取或系统设置。这里我们将深入探讨如何在Qt中...

    c# 单例模式的实现方法

    c# 单例模式的实现方法 单例模式是所有设计模式中最简单的一种,主要用于确保整个应用程序中只有一个实例存在。c# 中实现单例模式有多种方法,本文将详细介绍饿汉式和懒汉式两种实现方法。 饿汉式 饿汉式是最简单...

    PHP 面向对象程序设计(oop)学习笔记(三) – 单例模式和工厂模式

    class Singleton { private static $_instance; private function __construct() {} private function __clone() {} public static function getInstance() { if ( !isset(self::$_instance) ) { self::$_...

Global site tag (gtag.js) - Google Analytics