首页 新闻 搜索 专区 学院

单件设计模式中的静态初始化 为什么没有得到唯一的实例

0
悬赏园豆:5 [已解决问题] 解决于 2009-09-26 17:25

大家帮我看看应该怎么理解才能正确的理解。他说可以创建唯一的实例。但是我在底下创建并进行比较的时候却没有得到的结果是想通的。。 

 类

public sealed class _Singleton_
{
    static readonly _Singleton_ s = new _Singleton_();
    static _Singleton_()
    {
    }
    public _Singleton_()
    {
    }
    public static _Singleton_ S
    {
        get
        {
            return s;
        }
    }
}

这里开始创建实例然后进行比较

 _Singleton_ s = new _Singleton_();
        _Singleton_ s1 = new _Singleton_();
        if ( s.Equals(s1))
        {
            Response.Write("aaaaa");
        }

yzy的主页 yzy | 菜鸟二级 | 园豆:317
提问于:2009-09-14 17:16
< >
分享
最佳答案
0

你这不是单例模式,单例模式应当将构造函数设为private,仅允许通过访问_Singleton_S属性来获取对象

收获园豆:3
Gray Zhang | 专家六级 |园豆:17610 | 2009-09-14 21:22
其他回答(1)
0

public sealed class _Singleton_
{
     private    _Singleton_ s;
  
    private _Singleton_()
    {
       
    }
   
    public static _Singleton_ S
    {
        get
        {
            if (s == null)
            {
                s = new _Singleton_();
            }
            return s;
        }
    }

}

class A
{
    public void Test()
    {
        _Singleton_ s = _Singleton_.S;
        _Singleton_ s1 = _Singleton_.S;
        if (s.Equals(s1))
        {
            Response.Write("aaaaa");
        }
    }
}

 

很多,最简单的

收获园豆:2
setter | 园豆:207 (菜鸟二级) | 2009-09-14 21:07
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册