Singleton Tasarım Deseni
Singleton tasarım deseni Java’da en basit tasarım desenlerinden biridir.Bir nesne yaratmak için en iyi yollardan birini bize sağladığı için bu tasarım deseni de Creational(Yaratımsal) tasarım desenleri altında yer alır.
Burdaki singleton tasarım deseni sadece kendi nesnesini oluşturur ve sadece bir tane nesne oluştuğuna emin oluruz.Bu sınıf , tekrar o sınıfın nesnesini yaratmadan zaten daha önce yaratmış olduğu nesneye erişim sağlar.Database erişim işlemleri gibi tekrar tekrar nesne oluşturulmaması gereken durumlarda ve bir çok yazılımda hayati değer taşıyan durumlarda singleton pattern yazılımda hayat kurtarabilir.
Implementation (Implementasyon)
SingleObject sınıfımızı oluşturacağız.Bu SingleObject sınıfı kendi ‘private’ constructoruna ve static instance metoduna sahiptir.Constructor’u private tutmamızın amacı ise bu sınıfı dışarıdan ‘new SingleObject()’ çağırarak oluşturmayı engellemektir.Burada da Singleton tasarım deseni sayesinde dışarıdan bu sınıfı çağırmayı ve bir çok bu sınıfın nesnesinden oluşturmayı engelliyoruz.s
SingleObject sınıfı bizlere dışarıdaki dünyadan bu sınıfı çağırmak için static bir metot sunar.’SingletonPatternDemo’ sınıfını kullanarak SingleObject sınıfından SingleObject nesnesine erişim sağlayacağız.
Adım 1 :
Singleton sınıfı yaratalım.(SingleObject.java)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public class SingleObject {
private static SingleObject instance = new SingleObject();
private SingleObject() {
// TODO Auto-generated constructor stub
}
public static SingleObject getInstance()
{
return instance;
}
public void showMessage(String message)
{
System.out.println(“Message : “ + message);
}
}
|
Adım 2 :
Singleton sınfından tek bir nesneyi çağıralım.(SingletonPatternDemo.java)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public class SingletonPatternDemo {
public static void main(String[] args) {
/*Burada SingleObject nesnesinden direkt olarak
new operatörüyle nesne oluşturmayı deniyoruz.
SingleObject a = new SingleObject();
fakat syntax hatası alıyoruz çünkü dediğimiz gibi
Signleton Tasarım deseni bize sadece kendi instance metodu ile tek bir nesne
yaratmamıza izin veriyor.
*/
SingleObject single_object = SingleObject.getInstance();
single_object.showMessage(“I love Design Pattern in Java”);
}
}
|
Adım 3:
Çıktıyı kontrol ediyoruz.
1
|
Message : I love Design Pattern in Java
|