单例设计模式

来源:互联网 发布:java stringbuffer案例 编辑:程序博客网 时间:2024/05/08 23:26

设计一个类,只能实现该类的一个实例!
1 使用C++实现一个懒加载的单例

class Singleton{public:    static Singleton GetInstance(){        if(instance==NULL)            instance=new Singleton();        return instance;    }private:    Singleton(){};   //默认构造函数    static Singleton *instance; }

2 使用java实现一个懒加载的单例

class Singleton{    private static Singleton instance;    private Singleton(){}    public static Singleton getInstance(){        if(instance==NULL)            instance =new Singleton();        return instance;    }}

3 使用java实现一个饿汉式加载

class Singleton{    private Singleton instance=new Singleton();    private Singleton(){}    public static Singleton getInstance(){        return instance;    }}

总结:
(1)懒汉式加载只能在单线程的时候工作,当多个线程运行到判断instance是否为空时,会创建多个实例,此时不满足单例模式。
(2)可以加上一个同步锁,在判断instance是否为空之前,加锁。

0 0
原创粉丝点击