27 Aralık 2008 Cumartesi

Singleton Design Pattern

Uzun süredir sınavlar,dersler,iş derken bir türlü birşeyler yazamadım.:)
Konumuz Design Patternlar. Design Patternlar yazılımda yapılacak olan bazı spesifik işlemleri tanımlayan belirli şablonlardır.Bu şablonlara bağlı kalınarak istenilen işlemler yapılır.Design patternlar ayrıca yazılımda esneklik ve yeniden kod kullanılabilirlik sağlarlar.
Şimdi anlatacağım design pattern Singleton. Singleton patternındaki amaç programımızda bulunacak olan bir nesneyi sadece birkez yaratmak ve bu yaratılan nesneye de çeşitli yerlerden rahatça ulaşmaktır.Oluşturacağımız sınıfın UML diagramı şu şekildedir.
Buradaki getInstance metoodu static olarak tanımlanacak ve oluşturulan nesneyi döndürecektir.

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Singleton

{

class Singleton

{

private static Singleton instance;

private static int data = 0;

public static Singleton getInstance()

{

if (instance == null)

instance = new Singleton();

return instance;

}

public void setData(int deger)

{

data = deger;

}

public int getData()

{

return data;

}

}

}


  • Main Metot ise


static void Main(string[] args)

{

Singleton yeni = Singleton.getInstance();

yeni.setData(10);

Console.WriteLine(yeni.getData());

yeni = null;

yeni = Singleton.getInstance();

Console.WriteLine(yeni.getData());

Console.ReadLine();

}


Burada Singleton sınıfından getInstance içinde nesnemiz birkez yaratılmaktadır.Referansa null değer atasak bile Singleton sınıfı içinde nesnemiz saklı olduğu için getInstance metodu ile yine aynı nesne dönmektedir.Amaçlarımızdan biri de bu nesneye heryerden ulaşmaktı.Bunu da metodu static yaparak sağlamış oluyoruz.

0 yorum: