单例模式

                                单例模式

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

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

      一般而言,我们是一直能创建出对象的,能一直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

 

     下面是效果的一个图片:

   单例模式

        

你可能感兴趣的:(单例模式)