`
lym6520
  • 浏览: 694293 次
  • 性别: 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
分享到:
评论

相关推荐

    单例模式 Singleton Pattern

    单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个...

    设计模式_单例模式.zip

    单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 学习demo

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

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

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

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

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

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

    单例设计模式.pdf

    单例模式(Singleton Pattern)是 Java 中最常见的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

    C#版 24种设计模式

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

    用Java实现23种设计模式

    用Java实现23种设计模式 1. 创建型模式 工厂模式(Factory Pattern) 抽象工厂模式(Abstract Factory Pattern) 单例模式(Singleton Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern)...

    设计模式PPT

     单例模式(Singleton Pattern) 结构型模式用来处理类或者对象的组合,主要包含以下7种设计模式:  适配器模式(Adapter Pattern)  桥接模式(Bridge Pattern)  组合模式(Composite Pattern)  装饰者...

    33种JAVA设计模式DEMO

    单例模式(Singleton Pattern) 建造者模式(Builder Pattern) 原型模式(Prototype Pattern) 2 结构型模式 这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。 适配器...

    Java24种设计模式,Java24种设计模式,24种设计模式,学会了这24种设计模式,可以打遍天下无敌手,设计模式非常重要

    3、单例模式SINGLETON PATTERN 4、多例模式MULTITION PATTERN 5、工厂方法模式FACTORY METHOD PATTERN 6、抽象工厂模式ABSTRACT FACTORY PATTERN 7、门面模式FACADE PATTERN 8、适配器模式ADAPTER PATTERN 9、模板...

    JAVA设计模式.rar

    单例模式【SINGLETON PATTERN】  多例模式【MULTITION PATTERN】  工厂方法模式【FACTORY METHOD PATTERN】 抽象工厂模式【ABSTRACT FACTORY PATTERN】 门面模式【FACADE PATTERN】  适配器模式...

    Java设计模式,并加上个人理解

    1. 设计模式 1.1 含义 1.2 作用 1.3 设计原则 1.4 分类 2. 简单工厂模式 (SimpleFactoryPattern) 3. 工厂方法模式 (Factory Method) 4. 单例模式 (Singleton) 5. 抽象工厂模式 (Abstract Factory) 6. ...

    常用开发模式讲解.zip

    下面介绍几种常用的设计模式,包括单例模式、工厂模式、观察者模式、建造者模式、原型模式、适配器模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式和策略模式。 单例模式(Singleton Pattern) 单例模式...

    Java聊天室 观察者模式和单例模式

    基于观察者模式和单例模式的java聊天室 面向对象设计,抽象,封装,代理,组合和继承 适合理解java面向对象,socket编程,观察者模式和单例模式

    Android设计模式系列之单例模式

    单例模式,可以说是GOF的23种设计模式中最简单的一个。 这个模式相对于其他几个模式比较独立,它只负责控制自己的实例化数量单一(而不是考虑为用户产生什么样的实例),很有意思,是一个感觉上很干净的模式,本人很...

    PHP设计模式精彩剖析

    2. 单例模式(Singleton Pattern):确保一个类只有一个实例,并提供全局访问点。 3. 观察者模式(Observer Pattern):定义了一种一对多的依赖关系,当一个对象状态改变时,所有依赖它的对象都会得到通知并更新。 ...

    C#设计模式.PDF

    C#设计模式(7)-Singleton Pattern 50 一、 单例(Singleton)模式 50 二、 Singleton模式的结构: 51 三、 程序举例: 51 四、 在什么情形下使用单例模式: 52 五、 Singleton模式在实际系统中的实现 53 六、 C#...

Global site tag (gtag.js) - Google Analytics