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

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

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

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

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


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

7、按照惯例,总结一下。
要实现单例模式,需要三板斧。
第一:把构造函数私有化。
第二:提供Static方法,返回类类型的变量。
第三:通过私有的类类型变量,判断是否需要New。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:162
阅读量:127
阅读量:149
阅读量:79
阅读量:189