`
lym6520
  • 浏览: 705769 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

设计模式 之 “单例模式[Singleton Pattern]”

阅读更多
单例模式[Singleton Pattern]类图


这里我们来看下这个单例模式注册器如何工作的:
package m.utils;
 import java.util.HashMap;   
 import org.apache.log4j.Logger;   
     
 /**
  * 单例模式注册器
  *
  */
 public class SingletonRegistry {   
    public static SingletonRegistry REGISTRY = new SingletonRegistry();   
     
    private static HashMap map = new HashMap();   
    private static Logger logger = Logger.getRootLogger();   
     
    protected SingletonRegistry() {   
       // Exists to defeat instantiation   
    }   
    public static synchronized Object getInstance(String classname) {   
       Object singleton = map.get(classname);   
     
       if(singleton != null) {   
          return singleton;   
       }   
       try {   
          singleton = Class.forName(classname).newInstance();   
          logger.info("created singleton: " + singleton);   
       }   
       catch(ClassNotFoundException cnf) {   
          logger.fatal("Couldn't find class " + classname);       
       }   
       catch(InstantiationException ie) {   
          logger.fatal("Couldn't instantiate an object of type " +    
                        classname);       
       }   
       catch(IllegalAccessException ia) {   
          logger.fatal("Couldn't access class " + classname);       
       }   
       map.put(classname, singleton);   
       return singleton;   
    }   
 }


光有代码是看不出如何调用的,我们需要看看如何调用这个注册器,例如:
 public class Singleton {       
		    protected Singleton() {   
		       // Exists only to thwart instantiation.   
		    }   
		    public static Singleton getInstance() {   
		       return (Singleton)SingletonRegistry.REGISTRY.getInstance("m.pattern.Singleton");   
		    }   
		 }

这里将需要实现单例模式的类的构造方法使用protected来修饰,通过getInstance方法来获得这个单例的实例。

单例模式[Singleton Pattern] example code
  • 大小: 53 KB
分享到:
评论

相关推荐

    c++-设计模式之单例模式(Singleton Pattern)

    单例模式(Singleton Pattern)是一种创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于需要全局共享资源的场景,比如配置管理、日志记录等。 单例模式的组成 私有构造函数:防止外部...

    创建型模式之单例模式(Singleton Pattern)

    单例模式是软件设计模式中的一种,属于创建型模式,它的主要目的是确保一个类只有一个实例,并提供一个全局访问点。这种模式在很多场景下都非常有用,例如管理共享资源、配置对象或者缓存服务等。 单例模式的核心...

    Singleton pattern单例模式应用

    单例模式(Singleton Pattern)是一种常用的软件设计模式,在系统中确保某个类只有一个实例,并提供一个全局访问点。这种模式通常用于控制资源的消耗,比如数据库连接、线程池等,以及确保某个系统配置的一致性。 #...

    单例模式 Singleton Pattern

    单例模式是一种常见的设计模式,属于创建型模式之一。这种模式的核心在于确保某个类只有一个实例存在,并且提供一个全局访问点来获取该实例。单例模式在Java开发中尤其常见,因为它能够帮助开发者控制对象的创建过程...

    C++中的三大设计模式:单例模式、工厂模式与观察者模式的代码实现

    内容概要:本文档介绍了三个经典的软件设计模式——单例模式(Singleton Pattern)、工厂模式(Factory Pattern)以及观察者模式(Observer Pattern)的具体实现,并给出了带有详细注释的C++代码范例。对每个设计模式都有...

    java设计模式之单例模式详解

    单例模式(Singleton Pattern)是面向对象设计模式中的一种,属于创建型模式。它确保一个类仅有一个实例,并提供一个全局访问点来访问该实例。单例模式的核心在于控制类的实例化过程,保证在任何情况下都只会创建一...

    常见设计模式—单例模式(Singleton)

    单例模式(Singleton Pattern)是设计模式中最简单的模式之一,属于创建型模式。这种设计模式主要是类的对象只有一个实例,不需要每次new 创造。而我们要做的的就是确保这个对象创建的唯一。然后根据一些特征进行...

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

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

    设计模式之单例模式

    单例模式(Singleton Pattern)是软件设计模式中的一个重要组成部分,属于创建型模式之一。它保证一个类仅有一个实例,并提供一个全局访问点。单例模式的核心在于确保某个类只有一个实例存在,并且这个实例能够被...

    PHP设计模式之单例模式定义与用法分析

    单例模式(Singleton Pattern 单件模式或单元素模式),是常见的一种设计模式,它有三个特点 1.只能有一个实例 2.必须自行创建这个实例 3.必须给其他对象提供这一实例 下面用PHP代码实现一下 <?PHP /** *...

    第6讲_单例模式(Singleton)

    单例模式(Singleton Pattern)是一种常用的软件设计模式,它的核心意图是确保一个类在整个系统中只有一个实例,并提供一个全局访问点。这样的设计可以避免资源浪费,尤其在处理那些需要共享状态且频繁使用的对象时...

    设计模式_单例模式.zip

    总结来说,单例模式是一种常见的设计模式,用于控制类的实例化过程,保证在整个系统中只有一个实例存在。在Java中,我们可以使用多种方式来实现单例,包括传统的同步方法、双重检查锁定和枚举。然而,使用单例模式时...

    [创建型模式] 单例模式(Singleton Pattern)

    单例就是单个对象的意思,指在系统运行期间,一个类最多只能创建一个对象,且该类能自行创建这个对象的一种编码设计模式。 单例模式有两个特点: 在系统的整个生命周期内,单例对象最多只能有一个 单例对象必须由...

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

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

    C#单例模式(Singleton Pattern)详解

    C#单例模式(Singleton Pattern)是一种常用的设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。下面我们将详细介绍C#单例模式的定义、实现和优化。 单例模式的定义: 单例模式的主要目的是确保一个...

    设计模式—单例模式

    设计模式中的装饰器模式(Decorator Pattern)与单例模式不同,它是一种结构型模式,用于在运行时动态地给对象添加新的行为。装饰器模式通过将对象包装在一个装饰类中来扩展其功能,而不是通过继承来实现。这种模式...

    单例模式Singleton

    单例模式(Singleton Pattern)是一种常用的软件设计模式,它的核心思想是确保一个类在整个应用程序中只有一个实例存在,并提供一个全局访问点来获取这个实例。这种模式在很多场景下非常有用,比如管理系统资源、...

    C#版 24种设计模式

    备忘录模式(Memento Pattern) 策略模式(Strategy Pattern) 抽象工厂模式(Abstract Factory Pattern) 代理模式(Proxy Pattern) 单例模式(Singleton Pattern) 迭代器模式(Iterator Pattern) 访问者模式(Visitor ...

    Python 程序语言设计模式思路-创建型模式:单例模式,确保一个类的唯一实例(装饰器)面向对象编程、继承

    单例模式(Singleton Pattern)作为创建型模式中的一种,旨在确保一个类在系统中只有一个实例,并提供全局访问点。

Global site tag (gtag.js) - Google Analytics