加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 20:01:29 所属栏目:百科 来源:网络整理
导读:public class MySingletonClass{ public MySingletonClass() { _mySingletonObj = Instance(); } public static MySingletonClass Instance() { if (_mySingletonObj == null) { lock (typeof(lockObject)) { if (_mySingletonObj == null) _mySingletonObj
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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读