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); }
static void Main(string[] args) { Console.WriteLine("Cheap Volkswagen:"); CarFactoryBase constructor = new CheapCarFactory(new VolkswagenBuilder()); var car = constructor.Construct(); Console.WriteLine(car); Console.WriteLine("Luxury Volkswagen:"); constructor = new LuxuryCarFactory(new VolkswagenBuilder()); car = constructor.Construct(); Console.WriteLine(car); Console.WriteLine("Cheap Audi:"); constructor = new CheapCarFactory(new AudiBuilder()); car = constructor.Construct(); Console.WriteLine(car); Console.WriteLine("Luxury Audi:"); constructor = new LuxuryCarFactory(new AudiBuilder()); car = constructor.Construct(); Console.WriteLine(car); Console.ReadLine(); }
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() }); }
static void Main(string[] args) { //we can use buildes directly: //var vwBuilder = new VolkswagenBuilder(); //vwBuilder.BuildFrame(); //vwBuilder.BuildEngine(); //vwBuilder.BuildWheels(); //var car = vwBuilder.GetCar(); //Console.WriteLine(car); //vwBuilder.BuildMultimedia(); //car = vwBuilder.GetCar(); //Console.WriteLine(car); Console.WriteLine("Cheap VW"); CarFactoryBase constructor = new CheapCarFactory(new VolkswagenBuilder()); var car = constructor.Construct(); Console.WriteLine(car); Console.WriteLine("Luxury VW"); constructor = new LuxuryCarFactory(new VolkswagenBuilder()); car = constructor.Construct(); Console.WriteLine(car); Console.WriteLine("Cheap Audi"); constructor = new CheapCarFactory(new AudiBuilder()); car = constructor.Construct(); Console.WriteLine(car); Console.WriteLine("Luxury Audi"); constructor = new LuxuryCarFactory(new AudiBuilder()); car = constructor.Construct(); Console.WriteLine(car); Console.ReadLine(); }