Mehmet Ethem SULAN :: Java Tasarım Şablonları :: Abstract Factory Design Pattern(Soyut Fabrika Tasarım Şablonu)
UML diagramı:http://prntscr.com/4uig 
package www.ethemsulan.com;
public class TestSinifi {
//Bu fabrika oluşturmamızı sağlar.Ilişkili nesne türleri 
//oluşturmad akullanılır.Yanı fabrika üreten fabrikadır.
public static void main(String[] args) {
//Hayvalari omurgali ve omurgasiz olaraka yirdik.
//Soyut fabrikadan yeni fabrikalar üreterek tüm
//diğer hayvan türlerini yazabiliriz.Fabrika1
SoyutFabrika nesne=new Fabrika1();
Omurgali omli=nesne.getOmurgali();
System.out.println(omli.getTur());
Omurgasiz omsiz=nesne.getOmurgasiz();
System.out.println(omsiz.getTur());
//Fabrika2 
nesne=new Fabrika2();
omli=nesne.getOmurgali();
System.out.println(omli.getTur());
omsiz=nesne.getOmurgasiz();
System.out.println(omsiz.getTur());
    }  }
//------------------------------------------------
package www.ethemsulan.com;
//Ilişkili bir çok nesne grubu oluşturmak için kullanılır
//Bu kalıp geriye bir fabrika dönderir
public interface SoyutFabrika {
    public Omurgali getOmurgali();
    public Omurgasiz getOmurgasiz();
}
//------------------------------------------------
package www.ethemsulan.com;
public class Fabrika1 implements SoyutFabrika{
public Omurgali getOmurgali() {
        return new Memeliler();
    }
public Omurgasiz getOmurgasiz() {
        return new Solucanlar();
    }  }
//------------------------------------------------
package www.ethemsulan.com;
public class Fabrika2 implements SoyutFabrika{
public Omurgali getOmurgali() {
        return new Balıklar();
    }
public Omurgasiz getOmurgasiz() {
        return new Eklembacaklılar();
    } }
//------------------------------------------------
package www.ethemsulan.com;
public interface Omurgali {
    public String getTur();
}
//------------------------------------------------
package www.ethemsulan.com;
public interface Omurgasiz {
    public String getTur();
}
//------------------------------------------------
package www.ethemsulan.com;
public class Memeliler implements Omurgali {
public String getTur() {
        return "Memelilerden Keseli memeliler";
    } }
//------------------------------------------------
package www.ethemsulan.com;
public class Solucanlar implements Omurgasiz {
public String getTur() {
        return "Solucanlardan Yassı solucanlar";
    } }
//------------------------------------------------
package www.ethemsulan.com;
public class Balıklar implements Omurgali {
public String getTur() {
        return "Balıklardan Kemikli balıklar";
    } }
//------------------------------------------------
package www.ethemsulan.com;
public class Eklembacaklılar implements Omurgasiz {
public String getTur() {
        return "Eklem bacaklılardan Böcekler";
    } }

Orj kod:http://www.ethemsulan.pastebin.com/EedbcD6E

http://www.ethemsulan.pastebin.com/FHevmTyK

http://www.ethemsulan.pastebin.com/x6z3qafG

http://www.ethemsulan.pastebin.com/XnB9wgJh

http://www.ethemsulan.pastebin.com/Vmbv7Na6

http://www.ethemsulan.pastebin.com/P3Vp2wMt

http://www.ethemsulan.pastebin.com/sf0QbaNY

Write a Comment

Let me know what you think?