原创作者: ideage   阅读:808次   评论:0条   更新时间:2011-05-26    
引言  语言的进步,可以简化设计模式的实现.

Singleton模式

类型:创建型

意义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

1.D的实现

一个类的实现
class Singleton
{
public:
    static Singleton opCall()
    {
        if(_instance is null) _instance = new Singleton;
        return _instance;
    }
protected void init(){}
private:
    this() {this.init();}
    static Singleton _instance;
}

实现后每次都要复制粘贴,很累,用模版类,更方便:
class Singleton(T)
{  
  public static T opCall()
  {
    if(_instance is null) _instance = new T;
    return _instance;
  }
	
	protected void init(){}
	
  private:
    this() { this.init(); }

    static T _instance;
}


2.使用例子
class Option:Singleton!(Option)
{
   char[] foo(){ return "Hello!";}
}

int main()
{
   writefln(Option().foo);
   return 0;
}
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

文章信息

  • qiezi在2007-03-07创建
  • qiezi在2011-05-26更新
Global site tag (gtag.js) - Google Analytics