Skip to content

Instantly share code, notes, and snippets.

@yemrekeskin
Last active March 28, 2016 17:42
Show Gist options
  • Select an option

  • Save yemrekeskin/dfdc25b79f93987d8b24 to your computer and use it in GitHub Desktop.

Select an option

Save yemrekeskin/dfdc25b79f93987d8b24 to your computer and use it in GitHub Desktop.

Revisions

  1. yemrekeskin renamed this gist Mar 28, 2016. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  2. yemrekeskin created this gist Mar 28, 2016.
    66 changes: 66 additions & 0 deletions namespace Singleton.Sample10.cs
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,66 @@
    namespace Singleton.Sample10
    {
    class Program
    {
    static void Main(string[] args)
    {
    IFileProcessor fileProcessor = DataProcessor.Instance;

    var paymentFile = @"C:\Payment\out\20141204_940_159856.xml";

    fileProcessor.Valid(paymentFile);
    fileProcessor.Parse(paymentFile);

    DataProcessor.Instance.Valid(paymentFile);
    DataProcessor.Instance.Parse(paymentFile);

    Console.ReadKey();
    }
    }


    public interface IFileProcessor
    {
    void Valid(string path);
    void Parse(string path);
    }

    public sealed class DataProcessor
    :IFileProcessor
    {
    static DataProcessor instance = null;
    static readonly object padlock = new object();

    DataProcessor()
    {
    Console.WriteLine("Nesne oluştu. !");
    }

    public static DataProcessor Instance
    {
    get
    {
    // multi-thread ortamlar için lock ile paylaşılan nesne aracılığıyla
    // kontrol ediliyor.
    lock (padlock)
    {
    if (instance == null)
    {
    instance = new DataProcessor();
    }
    return instance;
    }
    }
    }

    public void Valid(string path)
    {
    Console.WriteLine("Dosyanın geçerliliği kontrol ediliyor...");
    }

    public void Parse(string path)
    {
    Console.WriteLine("Dosya ayrıştırılıyor...");
    }
    }
    }