Fabrik implementiert, mit der statischen Methode

Ich habe gesehen, dass die Umsetzung der Fabrik mit statischen Methoden. So etwas wie dieses:

public class MyFactory {
    public static Product1 createProduct1() {}
    public static Product2 createProduct2() {}
}

p1 = MyFactory.createProduct1();
p2 = MyFactory.createProduct2();

Ich bin mir nicht sicher, ob ich das so nennen kann Abstrakte Fabrik, aber das ist nicht die Frage. Was ich verstehe, über das Abstrakte Werk ist, dass es gibt uns die Flexibilität zu ändern, die Produkt-Familien leicht.

Factory factory = new MyFactory();  //might be a global or Singleton
p1 = factory.createProduct1();
p2 = factory.createProduct2();

Und wenn ich will Wechsel von MyFactory zu YourFactory dann nur eine Zeile ändern müssen. Ich kann es auch ändern, dass im Lauf der Zeit. Aber ist es möglich, wenn Sie umgesetzt werden, als statische Methode? Ich brauche zu ändern, alle Aufrufe von statischen factory. Auch die Verwendung von if-else-Prüfung in allen Orten, wenn wir wollen, zu entscheiden, in der Laufzeit.

p1 = YourFactory.createProduct1();
p2 = YourFactory.createProduct2();

Also, was ist der nutzen der Implementierung Fabrik mit statischen Methoden? Sind nicht wir verlieren die wichtigste Flexibilität? Was habe ich hier verpasst?

Bitte beachten Sie, dass keine spezielle Sprache wird vorausgesetzt. Jede Hilfe ist willkommen.

InformationsquelleAutor taskinoor | 2011-04-18
Schreibe einen Kommentar