lunes, 5 de octubre de 2009

Patrones de Diseño: Builder - Pizza y BuilderPizza


En el Run
public class run {

/**
     * @param args
     */
public static void main(String[] args) {

Pizza pizzaNapolitana =
new BuilderPizza()
.withNombre("Pizza a la Napolitana")
.withMuzarella()
.withTomate()
.withJamon()
.withHuevo()
.withOregano()
.build();

Pizza pizzaMuzarella =
new BuilderPizza()
.withNombre("Pizza de Muzarella")
.withMuzarella()
.withTomate()
.withOregano()
.build();

System.out.println("Ingredientes de la pizza: " + pizzaNapolitana.get_nombre());
for (String ingrediente : pizzaNapolitana._ingredientes ) {
System.out.println(ingrediente);
}
System.out.println("Cantidad de Ingredientes: " + pizzaNapolitana.cantidadDeIngredientes());

System.out.println("");

System.out.println("Ingredientes de la pizza: " + pizzaMuzarella.get_nombre());
for (String ingrediente : pizzaMuzarella._ingredientes ) {
System.out.println(ingrediente);
}
System.out.println("Cantidad de Ingredientes: " + pizzaMuzarella.cantidadDeIngredientes());

}

}

import java.util.ArrayList;

public class Pizza {
public ArrayList<String> _ingredientes = new ArrayList<String>();
private String _nombre;

public String get_nombre() {
return _nombre;
}
public void set_nombre(String _nombre) {
this._nombre = _nombre;
}
public int cantidadDeIngredientes() {
return _ingredientes.size();
}

}


public class BuilderPizza {

public Pizza _pizza;


public BuilderPizza(){
_pizza = new Pizza();
}

public BuilderPizza withNombre(String nombre) {
_pizza.set_nombre(nombre);
return this;
}

public BuilderPizza withMuzarella(){
_pizza._ingredientes.add("Muzarella");
return this;
}

public BuilderPizza withOregano(){
_pizza._ingredientes.add("Oregano");
return this;
}

public BuilderPizza withTomate(){
_pizza._ingredientes.add("Tomate");
return this;
}

public BuilderPizza withJamon() {
_pizza._ingredientes.add("Jamon");
return this;
}

public BuilderPizza withHuevo() {
_pizza._ingredientes.add("Huevo");
return this;
}

public Pizza build() {
// TODO Auto-generated method stub
return _pizza;
}
}

No hay comentarios:

Publicar un comentario