小哈儿的 学习日记

像疯子一样去战斗!
posts - 13, comments - 0, trackbacks - 0, articles - 0

设计模式之单例(Singleton) 笔记

Posted on 2007-04-18 10:17 dayue 阅读(246) 评论(0)  编辑  收藏 所属分类: 面向对象与设计模式
       单例模式是最简单的一种设计模式,它是创造型的。一个单例类仅允许他的一个实例被初始化。它检查一个实例是否已经被创建,如果是则返回这个实例。下面是一个单例类的基本结构:
 1package dp.singleton;
 2
 3public class Singleton {
 4    private static Singleton singleton;
 5    private Singleton(){
 6        
 7    }

 8    
 9    public static Singleton getInstance(){
10        if(singleton==null){
11            singleton=new Singleton();
12        }

13        return singleton;
14    }

15 
16}

17
在这个类中,有一个private static 的域,构造函数被设为私有的,这样调用它的类就不能使用构造器来创建它的一个实例。从一个单例类中取得一个实例的唯一办法是通过public static getInstance()方法。通过以下方法:
Singleton instance=Singleton.getInstance();
这个 getInstance()通过测试实例与是否为空来检查这个类的唯一实例是否被创建,如果是空的,则创建一个实例,如果非空,则返回这个已经存在的实例,一旦一个实例被创建了,那么 getInstance()这个方法就返回这个实例。

另一种稍微有些不同的实现单例类的方法是将域声明改为
private static final Singleton singleton=new Singleton();
这种方法总是创建一个实例。

只有注册用户登录后才能发表评论。


网站导航: