当前位置:  技术问答>java相关

单件模式如何使用?

    来源: 互联网  发布时间:2017-04-02

    本文导语:  我想把一个单件类的对象的实例化延迟到某一个函数中 ,可以这样子做吗? class EagerSingleton { private:static EagerSingleton* OnlyInstance; private:EagerSingleton(){}; public:static EagerSingleton* GetInstance() {       if(OnlyInstance==NULL) ...

我想把一个单件类的对象的实例化延迟到某一个函数中 ,可以这样子做吗?
class EagerSingleton
{
private:static EagerSingleton* OnlyInstance;
private:EagerSingleton(){};
public:static EagerSingleton* GetInstance()
{
      if(OnlyInstance==NULL)
  {
   OnlyInstance=new EagerSingleton;
  }
      return  OnlyInstance;
};
};
EagerSingleton* EagerSingleton::OnlyInstance=NULL;
问题是我怎样才能决定什么时候实例化它呢

|
不管你什么时候实例化,都只有一个对象,就是OnlyInstance啊。
用GetInstance()方法就可以得到这个对象了

|
如果是1.1以上,最简单的做法如下,在类载入的时候就完成初始化,你那个做法会出问题,要双重检查。

class EagerSingleton
{
private static EagerSingleton* OnlyInstance=new EagerSingleton();
private EagerSingleton(){};
public static EagerSingleton GetInstance()
{
      return  OnlyInstance;
};

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3