Bu yazımda size Factory adındaki nesneye dayalı yazılım şablonunu (Object-Oriented Design Pattern) anlatacağım. Factory şablonunu şöyle anlatayım. Painte benzer bir program yazmanız gerekiyor ve bu programda kullanıcının birden bir çok şekile ihtiyacı var. Kullanıcı şekil seçeneklerinden birine basar ve onunla boyama işlemini yapar. Tıpkı kullanıcı gibi bizde yazılımsal olarak bir şekli seçip, o şekli yaratıyoruz. Daha programlamacı gözüyle bakarsak, Shape adında genel bir interface yazıyoruz. Bu interfacesi kullanan Rectangular, Circle vb sınıflar var. Biz her sınıfların sadece Shape sınıfından haberdar olmalısını istiyoruz çünkü çocuk sınıfların(child classes) detaylarının bilinmesini istemiyoruz. Dolayısıyla, yeni bir obje yaratılması için Factory adlı sınıfa bir parametreyle (bunun ne olacağını ve türünü siz seçebilirsiniz) emir veriyoruz. Factory de bu parametreye göre bize istediğimiz sınıfın bir nesnesinden dönüyor. Böylece çocuk sınıfların detaylarını diğer nesnelerden saklamış oluyoruz.
public interface Shape{}
public class Circle implements Shape{}
public class Rectangular implements Shape{}
public class Factory{
public Shape getShape(String shapeName){
if(shapeName.equals("circle"))
return new Circle();
else if(shapeName.equals("rectangular"))
return new Rectangular();
else
return null;
}
}