2014-05-09 6 views
-2

вот два куска кода класса один для Singleton, а другой - для статического класса. Мне нравится понимать в программировании, когда нужно использовать статический класс и когда нужно использовать класс Singleton?В чем основное отличие между статическим классом и классом Singleton

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

1) Я действительно не нахожу статью, которая может помочь мне, когда я должен использовать статический класс, и когда класс Singleton должен быть хорошим выбором. Я видел, как люди управляют соединением db с использованием класса Singleton.

2) В чем основное отличие между классом Singleton & статическим классом?

public sealed class Singleton 
{ 
    private static Singleton instance = null; 
    private static readonly object padlock = new object(); 

    Singleton() 
    { 
    } 

    public static Singleton Instance 
    { 
     get 
     { 
      lock (padlock) 
      { 
       if (instance == null) 
       { 
        instance = new Singleton(); 
       } 
       return instance; 
      } 
     } 
    } 
} 

public static class TestStatic //: ITestSingleton 
    { 
     public static void doAction(string args) 
     { 
      Console.WriteLine("Test Static :: " + args); 
     } 
    } 

ответ

0

Используйте статический модификатор, чтобы объявить статический элемент, который принадлежит к самому типу, а не к конкретному объекту. Статический модификатор может использоваться с классами, полями, методами, свойствами, операторами, событиями и конструкторами, но он не может использоваться с индексаторами, деструкторами или типами, отличными от классов.

Использование одноточечны когда вам нужен класс, который имеет только один экземпляр, и вы должны обеспечить глобальную точку доступа к экземпляру

+0

просто скажите мне, какая ситуация связана с развитием приложения, где я должен использовать статический класс, и когда я должен использовать класс singleton? – Thomas

+0

Я использую singleton в основном для подключения к базе данных, такого как объекты доступа к данным. –

+0

Это * нельзя использовать с индексаторами * поймать мои глаза. Достаточно просто, чтобы отличное использование статического класса из singleton уже. – Sinatr

0

одноплодного является basiccly точкой входа к одному экземпляру класса , Экземпляр этого класса может быть передан другому методу в качестве ссылки.

Статический класс не имеет такого поведения (допускаются только статические методы).

Смежные вопросы