3 Ağu 2015

singleton pattern

Author: strongsoul | Filed under: Teknik

Singleton Pattern üretici tasarım desenlerinden biridir bu tasarım deseninde global tekil bir obje örneği oluşur ikincil bir tane oluşumuna izin verilmez.

Aşağıdaki Static pattern için sunduğum örnekte singleton pattern’in kullanımına dair yapılandırmayı gözlemleyebilirsiniz, static bir method üzerinden objenin üretimini gerçekleştirip yüklü instance’ı kontrol ediyoruz.

using System;

namespace singleton
{
	public class Connection
	{
		public static Connection instance1 = null;
		public String constructorText="";
		private Connection()
		{
		}
		public static void getConnection()
		{
			if (instance1==null) 
			{
				instance1 = new Connection ();
				instance1.constructorText="ilk olusum";
			} 
			else 
			{
				instance1.constructorText="daha once oluşmuş";
			}
		}
	}

	class MainClass
	{
		public static void Main (string[] args)
		{
			Connection.getConnection();
			Console.WriteLine(Connection.instance1.constructorText);

			Connection.getConnection();
			Console.WriteLine(Connection.instance1.constructorText);

			//Connection connection = new Connection();
		}			
	}
}

Connection connection = new Connection(); şeklinde çağırmaya çalışdığımızda `singleton.Connection.Connection()’ is inaccessible due to its protection level (CS0122) (singleton) uyarısını alırız zira tek constructor’ı private tanımlayarak bu şekilde üretimi engellemiş olduk.

satırı kapatıp derlediğimizde birinci connection çağırımımızda

ilk olusum

ikinci connection çağırımımızda

daha once oluşmuş

uyarılarını alırız.

kısa ve öz temalı yazılarımızda tekrar görüşmek üzere (da ayrı mıdır ?!) 😛

Yorum Bırakın