介绍
小编这次要给大家分享的是c#如何实现单例模式,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。
单例模式大概是所有设计模式中最简单的一种,如果在面试时被问及熟悉哪些设计模式,你可能第一个答的就是单例模式。
单例模式的实现分为两种:饿汉式和懒汉式。前者是在静态构造函数执行时就立即实例化,后者是在程序执行过程中第一次需要时再实例化。两者有各自适用的场景,实现方式也都很简单,唯一在设计时要考虑的一个问题就是:实例化时需要保证线程安全。
<强>饿汉式强>
饿汉式实现很简单,在静态构造函数中立即进行实例化:
公共类单例 { 私有静态只读的Singleton _instance=new Singleton (); 公共静态单例实例 { 得到 { 返回_instance; } } }
这里的新单例()<代码> 代码>等同于在静态构造函数中实例化。在C # 7中还可以进一步简写如下:
公共类单例 { 公共静态单例实例=比;新单(); }//等同于: 公共类单例 { 公共静态单例实例 { {回报新单();} } }
这样会导致每次调用都会创建一个新实例。
<强>懒汉式强>
懒汉式单例实现需要考虑线程安全问题,先来看一段经典的线程安全的单列模式实现代码:
LazySingleton公共类 { 私有静态只读的Lazy_instance=新Lazy (()=比;新的LazySingleton ()); 公共静态LazySingleton实例 { {回报_instance.Value;} } }
调用示例:
公共类项目 { 公共静态void Main () { var=LazySingleton.Instance实例; } }
使用Lazy
看完这篇关于c#如何实现单例模式的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。