单体模式的简单实现

单体模式的思路:(单体模式在多线程中容易出现被实例化多次的问题,因此要进行双重为空判断来缓解次问题)

1.把构造函数的作用域改为私有的,那样外面就不能new

2.通过一个类的静态方法得到一个静态实例

例如:

public class A

{

  static A a = null;

  static A ()

  {

    Console.WriteLine("创建对象");

  }

  public static A GetA()

  {

    if(a != null)

    {

      a = new A();

    }

    return a;

  }

  //定义一个方便测试的方法

  int b =0;

  public void Show()

  {

    b++;

    Console.WriteLine("单个对象被调用了{0}次",b);

  }

}

public class Demo

{

  static void Main(string[] args)

  {

    Console.WriteLine("开始执行");

    //通过循环来依次调用A的方法

    for(int i =0 ; i < 5; i++)

    {

      A.GetA().Show();

    }

  }

}

posted @ 2010-06-24 16:24  JasonNET  阅读(187)  评论(0编辑  收藏  举报