单例模式

                                单例模式

       大年初一。看了一下李建忠先生讲的单件模式,决定写点什么,写的东西呢,如题。

       单例模式就是设计模式中的一种,唯一与多态、继承、封装没有关系的一个设计模式。它是属于一个创建型的设计模式。创建型的主要负责的是创建对象。另外还有一些结构型和行为型的一些设计模式。结构型主要处理类与对象间的一些关系,行为型则处理类与对象交互的一些问题。

      一般而言,我们是一直能创建出对象的,能一直new出来的。能创建出很多实例的,要new一个对象必须访问构造函数,除非你让构造函数不能访问,将其权限改成private。话回单立模式,思路就是我们在当前类中创建一个静态方法。当然需要注意的是必须是静态方法,因为不能new对象了,你就不可以调用实例方法的。在静态方法中,如果当前实例为空,则new一个当前方法的实例,如若有则将已有的实例返回也就好了。那么上面得对象的时候就得用静态方法的点出来了,就不用实例方法new了。

      下面附上代码:

    

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Security.Cryptography.X509Certificates;
 5 using System.Text;
 6 using System.Threading.Tasks;
 7 
 8 namespace _02单立模式
 9 {
10     class Program
11     {
12         static void Main(string[] args)
13         {
14             //Singleton s1 = new Singleton();
15             //Singleton s2 = new Singleton();
16             Singleton s1 = Singleton.CreageSingleton();
17             Singleton s2 = Singleton.CreageSingleton();
18             Console.WriteLine(s1);
19             Console.WriteLine(s2);
20             Console.WriteLine(object.ReferenceEquals(s1, s2));
21             Console.ReadKey();
22         }
23     }
24 
25     /// <summary>
26     /// 创建一个实例类。名字叫Singleton.
27     /// </summary>
28     public class Singleton
29     {
30         private static Singleton _instance;
31         //private Singleton()此处与上面的注释的相对应,如若此处访问符改成private则上面注释的两行代码是会错的。
32         //{
33 
34         //}
35         //创建一个静态方法,用此方法返回对象
36         public static Singleton CreageSingleton()
37         {
38             if (_instance == null)
39             {
40                 _instance = new Singleton();
41             }
42             return _instance;
43         }
44     }
45 }
单例模式的Model

 

     下面是效果的一个图片:

   

        

posted @ 2014-01-31 23:26  公子若不胖天下谁胖  阅读(885)  评论(6编辑  收藏  举报