我们真的懂了单例模式吗?

这篇博客的标题用了一个疑问句,源于我们公司的代码评审,深刻的讨论了单例模式的使用场景及其与静态方法来说有何不同,这次讨论确实让我真正的理解了单例模式的使用,虽然说理解还一定全面,但必须作为一个认知的提升。告诉了我自己,对于编程,不懂的太多,原理性的东西还需要持续的学习。

进入正文,我们来讨论一下,什么是单例模式,何时使用单例模式?

单例模式是经典设计模式的一种,熟悉设计模式或者说读过设计模式相关书籍的同事都知道,这应该算是设计模式中最简单、最容易理解、使用最广泛的一种。单例模式主要是用来实现一个类的实例全局唯一,使用double check的形式来定义。

1 public class SingleInstance 2 { 3 private static readonly object _lock = new object(); 4 private static SingleInstance _instance = null; 5 6 /// <summary> 7 /// 私有构造函数 8 /// </summary> 9 private SingleInstance() { } 10 11 /// <summary> 12 /// 单一实例 13 /// </summary> 14 /// <returns></returns> 15 public static SingleInstance GetInstance() 16 { 17 if (_instance == null) 18 { 19 lock (_lock) 20 { 21 if (_instance == null) 22 { 23 _instance = new SingleInstance(); 24 } 25 } 26 } 27 return _instance; 28 } 29 30 31 public void Show() 32 { 33 Console.WriteLine("输出。。。郭志奇"); 34 } 35 36 public void Speak() 37 { 38 Console.WriteLine("说话。。。郭志奇"); 39 } 40 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspwdy.html