Ejemplo n.º 1
0
        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
        }
Ejemplo n.º 2
0
 public Carro(TipoCarroEnum tipoCarro)
 {
     _tipoCarro = tipoCarro;
 }