Effective Java Madde 3: Singleton Sınıfları Private Yapıcı Metot veya Enum Türüyle Güçlendirin

Singleton en basit anlamıyla sadece bir kez somutlaştırılabilen (instantiate) sınıf anlamına gelir. Diğer bir değişle, singleton sınıflardan sadece bir kez nesne oluşturulabilir. Bu nesneler ya fonksiyon gibi durum içermeyen nesneleri, (Madde 24) ya da doğası itibariyle eşsiz olan bileşenleri temsil ederler. Bir sınıfı singleton yapmak, onu kullanan istemcileri test etmeyi zorlaştırır çünkü singleton nesneyi bir mock gerçekleştirim ile değiştirmek eğer bu nesne bir arayüzü gerçekleştirmiyorsa imkansızdır.

Singleton nesne oluşturmak için iki yöntem vardır. Her ikisi de yapıcı metotları private tutarak, singleton nesneyi public static bir üye olarak dışarı açma esasına dayanmaktadır. Bu yöntemlerden ilkinde, singleton nesne final olarak tanımlanmaktadır:

// public final olarak tanımlanmış singleton alan
public class Elvis {

public static final Elvis INSTANCE = new Elvis();
private Elvis() { ... }
public void leaveTheBuilding() { ... }
}

>> DEVAMINI OKU
Share

Effective Java Madde 1: Yapıcı Metot (Constructor) Yerine Statik Fabrika Metotlarını Kullanın

Effective Java kitabını duymuşsunuzdur, Joshua Bloch efsane kitabında madde madde sizlere nasıl kaliteli Java kodu yazacağınızı anlatır. Bu kitapta anlatılanlarla ilgili yüzlerce İngilizce kaynak bulmak mümkün ama ben Türkçe bir kaynak bulamayınca sizlere bu kitabı özetlemeye karar verdim. Direk kitabın tam çevirisi olmasa da kendimce eklemeler çıkarmalar yaparak ve önemli gördüğüm yerleri vurgulayarak kitaptaki bölümlerden daha kısa ama aşağı yukarı aynı şeyi anlatan yazılar paylaşacağım. Başlangıç olarak kitaptaki ilk madde olan statik fabrika metotlarıyla başlıyoruz.

Normal şartlarda bir sınıf kendisinden nesne oluşturulmasını istiyorsa public bir sınıf yapıcı (constructor) tanımlar ve diğer sınıflar bunu kullanarak nesne oluşturabilir. Ancak her yazılımcının bilmesi gereken başka bir nesne yaratma yöntemi daha var. Bu yöntemde sınıf, dönüş değeri kendi nesnesi olan statik bir fabrika metodu (static factory method) tanımlar ve bu sınıftan nesne oluşturmak isteyenler bu metodu kullanırlar.

Read more “Effective Java Madde 1: Yapıcı Metot (Constructor) Yerine Statik Fabrika Metotlarını Kullanın”

Share