养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

设计模式:C#如何实现单例模式

时间:2024-10-29 03:25:48

同学们好,从今天起咱们开一个新坑:设计模式。设计模式对于编程人员是很重要的,它不局限于某一种语言,是一些通用的解决问题套路。今天我们先看一下最简单的,单例模式。

设计模式:C#如何实现单例模式

工具/原料

visualstudio2013

方法/步骤

1、单例模式是保证整个程序中,某个类,只构造一次,比如打印机类,构造一次打印机类比较费时间,构造多个也没有意义,因为操作的都是同一台打印机。下面我们动手实现,如下图,创建控制台应用程序。

设计模式:C#如何实现单例模式

2、要确保某个类只能构建一次,就要限制外憧钏荭拜部使用New操作符,创建变量。那么如何限制使用New操作符呢把构造器方法设置为Private。这是实现单例模式的第一板斧。添加SingleCl锾攒揉敫ass方法,构造器设为Private。如下图:

设计模式:C#如何实现单例模式

3、那么问题来了,构造器Pirvate,外部粲茸锿枋不能New,那么这个类怎么使用呢。第二板斧来啦,提供一个Static方法。同学们都知棕百脾酷道Static方法,不需要构建类。直接用类名就可以调用。用该方法返回一个SingleClass类。如下图:

设计模式:C#如何实现单例模式

4、下面是第三板斧:如何保证佯镧诱嚣只构建一次呢,按照上面的GetInstance方法的写法,调一次改方法,就New一个SingleClass类。解决方法是:在类蒗钰妒蟥中定义一个SingleClass类型的变量,用Private关键字修饰,每次调用GetInstance方法时,判断SingleClass类型的变量是否为空,不为空就直接返回,为空就new一个。这样说,同学们肯定晕了。下面直接看代码:

设计模式:C#如何实现单例模式

5、下面我们加一些调试代码,验证SingleClass是不是只被构造了一次。如下图:

设计模式:C#如何实现单例模式

设计模式:C#如何实现单例模式

6、运行程序,可以看到构造方法,只被调用了一次。

设计模式:C#如何实现单例模式

7、按照惯例,总结一下。要实现单例模式,需要三板斧。第一:把构造函数私有化。第二:提供Static方法,返回类类型的变量。第三:通过私有的类类型变量,判断是否需要New。

© 一点知识