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); }
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() }); }