c# – 使用公共构造函数的单例模式

c# – 使用公共构造函数的单例模式,第1张

概述public class MySingletonClass{ public MySingletonClass() { _mySingletonObj = Instance(); } public static MySingletonClass Instance() { if (_mySingletonObj == null) { loc
public class MySingletonClass{  public MySingletonClass()  {    _mySingletonObj = Instance();  }  public static MySingletonClass Instance()  {    if (_mySingletonObj  == null)    {      lock (typeof(lockObject))      {        if (_mySingletonObj  == null)          _mySingletonObj  = new MySingletonClass();      }    }    return _mySingletonObj ;  }}MySingletonClass _myObj = new MySingletonClass();

这个作为公共建设者的单身人士……?

谢谢

解决方法 不,它不是单身人士 – 任何人都可以创建它的多个实例. (暂且不谈已经提出的堆栈溢出问题,以及你不安全地使用双重检查锁定的事实.)

单例类型的一个显着特征是它可以防止构造其自身的多个实例.

来自维基百科Singleton Pattern文章:

In software engineering,the singleton
pattern is a design pattern that is
used to restrict instantiation of a
class to one object.

从Ward Cunningham’s pattern repository开始:

A Singleton is the combination of two
essential propertIEs:

Ensure a class only has one instance ProvIDe a global point of access to it

很明显,你的单身人士无法满足这两个定义.

有关实际的实现,请参阅我的singleton article.

总结

以上是内存溢出为你收集整理的c# – 使用公共构造函数的单例模式全部内容,希望文章能够帮你解决c# – 使用公共构造函数的单例模式所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1225718.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存