# Fabrik Methode, gutes Beispiel?



## metalfan (20. Jan 2015)

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

```
public abstract class Getraenk {
   
  public abstract String getName();
  
  public abstract double getKalorien();
  
  public abstract double getAlkoholgehalt();
}
```




#Konkretes Produkt

```
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

```
public abstract class AbstractGetraenkeAutomat {
  
  public abstract Getraenk createGetraenk(int gConstant);
}
```




#Konkreter Erzeuger

```
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;
    }    
  }
}
```


----------

