0

Java Singleton Pattern nedir ? Nasıl Hazırlanır ?

Bu yazıda Singleton pattern ( tasarım kalıbı ) hakkında biraz not alalım. Nedir bu Singleton pattern ? aslında bir kütüphane , bir eklenti değil bir mantık . Yani bu iş böyle yapılırsa daha iyi olur kabilinden programlamada kullanılan güzel bir yöntem. Bu yöntemi şöyle açıklayalım. Projenizde veritabanı işlemleri yapıyorsunuz. Bu işlemleri yapmak için her seferinde yeni bir nesne oluşturmaya ne gerek var bir tane nesne olsa da her taraf da aynısını kullansam. Çünkü projemdeki veritabanı tek,  her seferde yeni bir nesne oluşturmaya gerek yok ve her yerde yeni nesne üretmek tam bir çöplüğe çeviriyor işi.  Yada Dosya işlemleri yapacaksınız bunun içinde bir nesne işinizi görür her yerde bundan bir nesne üretmeye gerek yok. İşte Singleton adından da anlaşılacağa üzere  ” tek ton ” tek nesne ile bütün işleri yapmak gibi bir yapı anlamına geliyor. Şimdi bu yapıyı nasıl kuracağız adım adım bakalım.

  1. Bir sınıf oluşturuyoruz “Database.java” 
  2. Bu sınıfdan nesne üretimleyeceği için erişim için 
 private static Database instance=new Database();

yeni bir instance üretiyoruz.  Buradaki nesnemiz static olmazsa getInstance() metodu bunu geri döndüremez.  

    3.   Bu sınıfdan nesne üretilmeyecek!  peki nasıl ? Constructor’umuzu private yapalım ta ki kimse burdan yeni nesne üretemesin 

private Database(){ }

   4. buraya kadar hala kendi kendimizeyiz . Kimse kullanmayacaksa bu sınıfı niye yazdık ki !? Şimdi bunu dışarıya açalım

public static Database getInstance(){
    return instance;
}

evet Singleton yapısını hazırladık. Şimdi metodları yazmaya başlayalım.  örneğin 2 tane metodumuz olsun connect, ve executeSQL diye

    public void executeSQL(String sql){}

    public void sqlConnect(String databaseName, String user, String pass){}

bu metodlarımız da public oluyor . Şimdi “Main.java” dan çağırıp kullanmayı deneyelim

public class Main {

    public static void main(String[] args) {


        Database.getInstance().executeSQL("Select * from deneme");

    }
}

artık bu şekilde heryerde çağırıp kullanabiliriz  devamlı Database nesnesi üretmemize gerek yoooook. Süper yöntem.

admin

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir