2016-06-06 4 views
0
public class Deposit 
{ 
    private static readonly Deposit instance = new Deposit(); 
    public static Deposit Instance 
    { 
     get 
     { return instance; } 
    } 

    public void Update_Approval() 
    { 
     Console.WriteLine("Update"); 
    } 

    private void Main() 
    { 
     Deposit.Instance.Update_Approval(); 
     Update_Approval(); 
     Console.Read(); 
    } 
} 

Я загрузил этот исходный код из Интернета.Вызов метода с созданием экземпляра

Я просто интересно, способ вызова Update_Approval метод от метода Main, я увидел, что они использовали Deposit.Instance.Update_Approval() назвать, но , если я напрямую позвонить Update_Approval(), который может обеспечить тот же результат.

Итак, какова цель использования этого способа для вызова метода?

ответ

2

То, что вы видите, представляет собой реализацию одноэлементного шаблона. Шаблон singleton используется для создания только одного экземпляра объекта во всей реализации программы. Зачастую фабричные классы создаются с таким шаблоном, чтобы предотвратить воссоздание объекта.

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

0

Я не уверен, что вы можете позвонить по телефону Update_Approval() непосредственно с Main(). Ваш Main() должен быть статическим методом. И из этого метода он может действовать только на экземпляры Deposit или другие статические методы. Помимо этого, как объясняет Патрик, это singleton pattern, и его можно использовать для управления только одним экземпляром этого класса.

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