Hi,
das hier ist meiner Meinung nach ein gutes Beispiel für das Muster "Fabrik Methode"
Seht ihr das auch so, oder was würdet ihr ändern?
Quelle: Factory Pattern

Bin gerade etwas verwirrt ob Fabrik Methode dem englischen "Factory Method" entspricht oder nicht.
Einerseits sagt der Artikel: Factory method pattern - Wikipedia, the free encyclopedia das nicht jede Fabrik Methode diesem Muster enspricht aber andererseits steht auf: Fabrikmethode das UML Diagramm vom "Fabric Method Pattern" für die Beschreibung der Fabrik Methode.
Ist es denn nun das gleiche oder nicht?
Ist in diesem Beispiel die "factory method" createGetränk?
#Produkt
#Konkretes Produkt
#Abstrakter Erzeuger
#Konkreter Erzeuger
das hier ist meiner Meinung nach ein gutes Beispiel für das Muster "Fabrik Methode"
Seht ihr das auch so, oder was würdet ihr ändern?
Quelle: Factory Pattern

Bin gerade etwas verwirrt ob Fabrik Methode dem englischen "Factory Method" entspricht oder nicht.
Einerseits sagt der Artikel: Factory method pattern - Wikipedia, the free encyclopedia das nicht jede Fabrik Methode diesem Muster enspricht aber andererseits steht auf: Fabrikmethode das UML Diagramm vom "Fabric Method Pattern" für die Beschreibung der Fabrik Methode.
Ist es denn nun das gleiche oder nicht?
Ist in diesem Beispiel die "factory method" createGetränk?
#Produkt
Java:
public abstract class Getraenk {
public abstract String getName();
public abstract double getKalorien();
public abstract double getAlkoholgehalt();
}
#Konkretes Produkt
Java:
public class Limonade extends Getraenk{
private String name;
private double kalorien;
public Limonade(String name, double kalorien){
this.name = name;
this.kalorien = kalorien;
}
public double getAlkoholgehalt(){
return 0;
}
public double getKalorien(){
return kalorien;
}
public String getName(){
return name;
}
}
#Abstrakter Erzeuger
Java:
public abstract class AbstractGetraenkeAutomat {
public abstract Getraenk createGetraenk(int gConstant);
}
#Konkreter Erzeuger
Java:
public class GetraenkeAutomat extends AbstractGetraenkeAutomat{
public final static int WEIN = 1;
public final static int LIMONADE = 2;
public Getraenk createGetraenk(int gConstant){
switch(gConstant) {
case WEIN: return new Wein("Merlot",70,13);
case LIMONADE: return new Limonade(Orangenlimonade",50);
default: return null;
}
}
}