Singleton Design Pattern
Merhabalar arkadaşlar. Bu yazıda Singleton Design Pattern hakkında size bilgi vermeye çalışacağım.
Projelerimiz çoğunlukla gelen parametrelere göre farklı şekilde çıktılar üretecek şekilde yazılsalar bile projenin bazı kısımlarında ne olursa olsun standart çıktıyı vermesi gerekir. Örneğin diyelim ki bir üyelik sistemi projeniz var ve bu üyelik sistemi içerisinde kullanıcı bir hareket gerçekleştirdi. Bu gerçekleşen hareketin tarihini, saatini vs. kaydetmeniz gerekiyor. İşte bu durumda sistem kullanıcıya özel bir veri değil standart bir veri üretmesi gerekir. Bu durumda da Singleton Design Pattern uygulanarak bu ihtiyaç karşılanabilir.
Şimdi Java dili ile basit bir şekilde Singleton Design Pattern kullanımını örnekleyelim.
SingletonDesignPattern sınıfımızı inceleyelim:
- Az önce de bahsettiğim gibi Singleton Design Pattern uygulanacağı zaman kullanıcıya ya da parametreye bağlı olarak çıktı üretilmeyeceği yani herkes için standart bir akış uygulanacak demektir. Bu durumda bu pattern’in uygulandığı sınıf nesnesinin static olması bizim için iyidir. Biz de bunun için instance* nesnemizi static olarak tanımladık.
- Sınıfımızın constructor’ını Thread Safe bir mekanizma oluşturmak için private olacak şekilde tanımladık.
- getInstance() metodumuz bize bu sınıftan bir nesne üretip verecek bir metotdur. Yine Thread Safe bir mekanizma için metodumuz synchronized olarak tanımlı. Metodun tek görevi bize sınıftan nesne sunmak olduğu için static olarak olarak tanımlanmasında sakınca yoktur. Metot içerisinde az önce tanımladığımız instance nesnemiz null ise yenisini oluşturup, değilse var olanı bize verecek şekilde kodumuzu yazıyoruz.
- getUTCDateTime() metodu da şu anki zamanı UTC diliminde bize verecek metotdur. Türkiye UTC+3’de yer aldığı için şu anki zamandan 3 saat öncesini bize verecektir metot.
MainClass.java
MainClass içerinse SingletonDesignPattern sınıfı içindeki static getInstance metoud üzerinden nesnemizi elde ediyoruz ve konsola UTC zamanı yazdırıyoruz.
Ekran Çıktısı
MainClass’ı çalıştırdığımda konsol çıktım şu şekilde olmakta:
Gördüğümüz gibi saat 20:21 olmasına karşın UTC date time istediğimiz için saat 17:21 olarak geliyor.
Bu yazıda anlatacağım bu kadar arkadaşlar. Singleton Design Pattern kullanımını örneklemiş olduk.
Başka bir yazıda görüşene kadar sağlıcakla kalın.
Görüşmek üzere.
Selam ve Sevgilerimle