Правильна ли моя реализация синглтона? C # - PullRequest
1 голос
/ 21 ноября 2010

Я читал о шаблонах и пытаюсь реализовать Singleton

Верна ли моя реализация?Как я могу улучшить это?В сети так много реализаций ............

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;
                }
            }
        }

Ответы [ 3 ]

2 голосов
/ 21 ноября 2010

Существуют разные реализации.Я часто ссылаюсь на хорошее резюме Джона Скита здесь:

http://www.yoda.arachsys.com/csharp/singleton.html

2 голосов
/ 21 ноября 2010

... и так много одинаковых вопросов по SO, и так много людей, которые согласны с тем, что эта статья обеспечивает лучшее решение!

1 голос
/ 21 ноября 2010

Поскольку у нас теперь есть класс 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; }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...