7

Anladığım kadarıyla Fabrika Yöntemi Basit Fabrika ve Fabrika Nesnesi Soyut Fabrika mı? Ve:Fabrika Metodu VS Fabrika Nesnesi

-Factory Yöntemi (Basit Fabrikası):

public class SimplePizzaFactory { 
    public static final int CHEESE = 1; 
    public static final int PEPPERONI = 2; 
    public static final int VEGGIE = 3; 

    public static Pizza createPizza(int type) { 
     Pizza pizza = null; 

     if (type == CHEESE) { 
      pizza = new CheesePizza(); 
     } else if (type == PEPPERONI) { 
      pizza = new PepperoniPizza(); 
     } else if (type == VEGGIE) { 
      pizza = new VeggiePizza(); 
     } 

     return pizza; 
    } 
} 

Fabrika Nesne (Özet Fabrikası):

?

Doğru muyum?

Fabrika modellerinin gerçekleşmesi ve farkları nelerdir?

+0

haklısınız, teşekkürler – drifter

+0

Java'nın eski bir sürümünü kullanmıyorsanız, başka bir şey, olası piliç türlerini numaralandırmak için lütfen enum'u ints yerine kullanın. – Renato

+0

1, ben bu eski örneği bulundu (Java o zaman henüz Çeteleler yoktu.) – drifter

cevap

6

Hayır. Bir fabrika yöntemi, herhangi bir eyalet gerektirmeyen bir fabrikadır. Bir fabrika sınıfı bir sınıfın kendisi - devlete ve bu durumu değiştiren yöntemlere sahiptir. Sonunda, .create() yöntemini çağırırsınız ve farklı bir türde yeni bir nesne oluşturmak için mevcut durumunu kullanır.

Soyut fabrika farklı bir şeydir - orada aynı soyut kavramın çoklu fabrika uygulamaları var. wikipedia example, e GUIFactory hakkındadır - bu, iki uygulamaya sahip soyut bir fabrikadır: WinFactory ve OSXFactory. İstemci kodu, hangi uygulamayı kullandığını bilmez - yalnızca fabrikanın Button örneğini oluşturduğunu bilir. Hangi işletim sisteminden bağımsız olarak aynı kodu yazmayı mümkün kılar.

+0

Yani 3 ana tipi vardır:. - Fabrika - Özet Fabrikası - Fabrika yöntemi ? – drifter

+0

evet, doğru. Fabrika ve fabrika metodu çok da farklı değil. – Bozho

+0

Cevabınız açık. Fabrika ve fabrika yöntemi arasındaki farkın ne olduğunu anlıyorum, ancak hangisi daha iyi? ve neden? – grep