Exemplo n.º 1
0
        public static Car ProdCar(string type)
        {
            CarFactory cf;

            switch (type)
            {
            case "Luxury":
                cf = new LuxuryCarFactory();
                break;

            case "Popular":
                cf = new PopularCarFactory();
                break;

            default:
                return(null);
            }

            Car car = new Car();

            car.Wheel = cf.InstallWheel();
            car.Sound = cf.InstallSound();

            return(car);
        }
Exemplo n.º 2
0
        public static Car MakeCar(CarSophisticationLevel carSophisticationLevel)
        {
            ICarFactory carFactory = null;

            switch (carSophisticationLevel)
            {
            case CarSophisticationLevel.Popular:
                carFactory = new PopularCarFactory();
                break;

            case CarSophisticationLevel.Luxury:
                carFactory = new LuxuryCarFactory();
                break;

            default:
                return(null);
            }

            if (carFactory == null)
            {
                return(null);
            }

            return(new Car
            {
                Engine = carFactory.MakeEngine(),
                Shift = carFactory.MakeShift()
            });
        }