设计模式之单例模式

  设计模式中的单例模式的作用是 创建一个全局访问对象,并且只有一个对象,并提供访问方法。 就好像地球一样,世界上只有一个地球。

/// <summary> /// 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 /// </summary> class Program { static void Main(string[] args) { Earth e1 =Earth.Instance(); Earth e2 =Earth.Instance(); Console.WriteLine(ReferenceEquals(e1,e2)); Console.Read(); } } //类的单例模式 public class Earth { private static Earth OnlyOneEarth; private Earth() { } public static Earth Instance() { if (OnlyOneEarth==null) { OnlyOneEarth=new Earth(); } return OnlyOneEarth; } }

  

 1  class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             SingleInsance instance= SingleInsance.GetInstance();
 6             SingleInsance instance2 = SingleInsance.GetInstance();
 7             Console.WriteLine(ReferenceEquals(instance,instance2));
 8 
 9             OneInstance one = OneInstance.GetIntance();
10             OneInstance two = OneInstance.GetIntance();
11 
12             Console.WriteLine(ReferenceEquals(one,two));
13 
14             Console.Read();
15         }
16        
17     }
18 
19     //不可以继承的单例类
20     sealed class  SingleInsance
21     {
22         //只能读的静态 静态实例化变量
23         private static readonly SingleInsance instance = new SingleInsance();
24         private SingleInsance()    //构造函数私有话以后,就不可以 new 对象, 保证对象全局唯一
25         { }
26         public static SingleInsance GetInstance()
27         {
28             return instance;
29         }
30     }
31 
32 
33     class OneInstance
34     {
35         private OneInstance() { }
36 
37         public static OneInstance instance = null;
38 
39         //方法就是为了获得 该类的一个实例
40         public static OneInstance GetIntance()
41         {
42             if (instance==null)
43             {
44                 instance = new OneInstance();
45             }
46             return instance;
47         }
48     }

 

posted @ 2014-11-27 20:48  落日云烟  阅读(105)  评论(0编辑  收藏  举报