public static Carro MontarCarro(string tipo) { CarroFactory cf = null; switch (tipo) { case "Luxo": cf = new CarroLuxoFactory(); break; case "Popular": cf = new CarroPopularFactory(); break; default: cf = new CarroPopularFactory(); break; } Carro carro = new Carro(); carro.Roda = cf.MontarRoda(); carro.Som = cf.MontarSom(); return(carro); }
public static Carro MontarCarro(Tipo tipo) { CarroFactory cf = null; switch (tipo) { case Tipo.Popular: cf = new CarroPopularFactory(); break; case Tipo.Luxo: cf = new CarroLuxoFactory(); break; default: break; } var carro = new Carro { Roda = cf.MontarRoda(), Som = cf.MontarSom() }; return(carro); }
public static Carro Escolha(string escolha) { CarroFactory fact = null; switch (escolha) { case "luxo": fact = new CarroLuxoFactory(); break; case "popular": fact = new CarroPopularFactory(); break; } return(new Carro { Roda = fact.MontarRoda(), Som = fact.MontarSom() }); }
private static void AbstractFactory() { #region AbstractFactory List <Carro> carrosMontados = new List <Carro>(); CarroFactory carroFactory = null; TipoCarroEnum[] carros = new TipoCarroEnum[] { TipoCarroEnum.Popular, TipoCarroEnum.Luxo }; foreach (var tipoCarro in carros) { switch (tipoCarro) { case TipoCarroEnum.Popular: carroFactory = new CarroPopularFactory(); break; case TipoCarroEnum.Luxo: carroFactory = new CarroLuxoFactory(); break; default: throw new Exception($"TipoCarro: {tipoCarro} desconhecido!"); } carrosMontados.Add(new Carro(carroFactory.TipoCarro) { Roda = carroFactory.MontarRoda(), Som = carroFactory.MontarSom() }); } foreach (var carroMontado in carrosMontados) { GerenciadorSaida.SaidaConsole.EscreverTexto($"Carro: {carroMontado.TipoCarro} \t Roda: {carroMontado.Roda.ToString()} \t Som: {carroMontado.Som.ToString()}"); } #endregion AbstractFactory }