public static AbstractPizza CreatePizza(string pizzaName) { AbstractPizzaBuilder pizzaBuilder; switch (pizzaName) { case "Margarita": pizzaBuilder = new MargaritaBuilder(); break; case "Carbonara": pizzaBuilder = new CarbonaraBuilder(); break; case "Italian": pizzaBuilder = new ItalianBuilder(); break; case "Pepperoni": pizzaBuilder = new PepperoniBuilder(); break; default: throw new ArgumentException("Pizza with that name is not on our menu"); } pizzaBuilder.AddCheese().AddTomatoes().AddOlives().AddMeat(); return(pizzaBuilder.Create()); }
static void Main(string[] args) { Pedido Pedido = new Pedido(); PizzaBuilder pizza; BebidaBuilder bebida; //Mediator Cliente Ruhan = new Promocao("Ruhan"); Pedido.RealizarPedido(Ruhan); Console.WriteLine("Dados do pedido:"); //Builder pizza = new MargueritaBuilder(); bebida = new RefrigeranteBuilder(); Pedido.PizzaConstrutor(pizza); Pedido.BebidaConstrutor(bebida); pizza.Pizza.Show(); bebida.Bebida.Show(); //Mediator Console.WriteLine("********************************"); Ruhan.EnviarMensagem("Pizzaria", "Olá Ruhan, pedido confirmado!"); //Proxy EntregaProxy proxy = new EntregaProxy(); Ruhan.EnviarMensagem("Pizzaria", "O Valor do seu pedido ficou em " + proxy.ValorPedido(55, 8, 0) + " reais."); Ruhan.EnviarMensagem("Pizzaria", "O prazo de entrega do seu pedido é até " + proxy.PrazoEntrega(50)); Console.WriteLine("********************************"); //Mediator Cliente Maria = new SemPromocao("Maria"); Pedido.RealizarPedido(Maria); Console.WriteLine("Dados do pedido:"); //Builder pizza = new PepperoniBuilder(); bebida = new CervejaBuilder(); Pedido.PizzaConstrutor(pizza); Pedido.BebidaConstrutor(bebida); pizza.Pizza.Show(); bebida.Bebida.Show(); //Mediator Console.WriteLine("********************************"); Maria.EnviarMensagem("Pizzaria", "Olá Maria, pedido confirmado!"); //Proxy Maria.EnviarMensagem("Pizzaria", "O Valor do seu pedido ficou em " + proxy.ValorPedido(70, 11, 8) + " reais."); Maria.EnviarMensagem("Pizzaria", "O prazo de entrega do seu pedido é até " + proxy.PrazoEntrega(50)); Console.ReadKey(); }
static void Main(string[] args) { string number = ""; IBuilder pizzabuilder = null; while (pizzabuilder == null) { Console.WriteLine("Choose pizza: \nMargarita (1)\nItalian (2)\nPepperoni (3)\nCarbonara (4)"); number = Console.ReadLine(); switch (number) { case "1": { pizzabuilder = new MargaritaBuilder(); break; } case "2": { pizzabuilder = new ItalianBuilder(); break; } case "3": { pizzabuilder = new PepperoniBuilder(); break; } case "4": { pizzabuilder = new CarbonaraBuilder(); break; } default: { Console.WriteLine("Write number"); break; } } } Console.WriteLine("You choosed {0} pizza with ingridients: ", pizzabuilder.createPizza().GetType().Name); foreach (var ingridient in pizzabuilder.createPizza().Ingridients) { Console.WriteLine("\t {0}", ingridient); } Console.WriteLine("Would you like to add extra ingridients? (y/n)"); string answer = ""; APizza pizza = null; while (answer != "y" && answer != "n") { answer = Console.ReadLine(); switch (answer) { case "y": { pizza = constructPizza(pizzabuilder); break; } case "n": { pizza = pizzabuilder.createPizza(); break; } default: { Console.WriteLine("Type 'n' or 'y'"); break; } } } Console.WriteLine("Enjoy your {0} pizza with ingridients: ", pizza.GetType().Name); foreach (var ingridient in pizza.Ingridients) { Console.WriteLine("\t {0}", ingridient); } }