我的单例实现正确吗?时间:2019-03-17 标签:c#

发布于 2024-10-03 18:48:41 字数 609 浏览 1 评论 0原文

我一直在阅读有关模式的内容,并且正在尝试实现单例,

我的实现正确吗?我该如何改进它?网上有很多实现............

public sealed class SingletonProxy 
        {
            private static IInfusion instance;

            static SingletonProxy() { }

            SingletonProxy() { }

            public static IInfusion Instance
            {
                get
                {
                    if(instance == null)
                    {
                        instance = XmlRpcProxyGen.Create<IInfusion>();
                    }
                    return instance;
                }
            }
        }

I've been reading about patterns and i am trying to implement the Singleton

Is my implementation correct? How can i Improve it? There are so many implementation on the web............

public sealed class SingletonProxy 
        {
            private static IInfusion instance;

            static SingletonProxy() { }

            SingletonProxy() { }

            public static IInfusion Instance
            {
                get
                {
                    if(instance == null)
                    {
                        instance = XmlRpcProxyGen.Create<IInfusion>();
                    }
                    return instance;
                }
            }
        }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

メ斷腸人バ 2024-10-10 18:48:41

由于我们现在有了 System.Lazy 类,我倾向于使用这个执行:

public sealed class SingletonProxy
{
    private static readonly Lazy<IInfusion> instance 
          = new Lazy<IInfusion>(XmlRpcProxyGen.Create<IInfusion>);

    public static IInfusion Instance
    {
        get { return instance.Value; }
    }
}

Since we now have the System.Lazy class, I tend to use this implementation:

public sealed class SingletonProxy
{
    private static readonly Lazy<IInfusion> instance 
          = new Lazy<IInfusion>(XmlRpcProxyGen.Create<IInfusion>);

    public static IInfusion Instance
    {
        get { return instance.Value; }
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文