static void Main(string[] args) { //Standard builder pattern using Console.WriteLine("BMW car builder:"); var bmwBuilder = new BMWBuilder(); bmwBuilder.BuildFrame(); bmwBuilder.BuildEngine(); bmwBuilder.BuildWheels(); bmwBuilder.BuildSafety(); Console.WriteLine(bmwBuilder.GetCar()); //Builder pattern with fabric pattern Console.WriteLine("\nAUDI regular car builder:"); var audiRegular = new RegularCar(new AudiBuilder()); Console.WriteLine(audiRegular.Construct()); Console.WriteLine("\nBMW luxury car builder:"); var bmwLuxury = new LuxuryCar(new BMWBuilder()); Console.WriteLine(bmwLuxury.Construct()); Console.ReadLine(); }
internal static VehicleGarageCard CreateFirstCard( string i_OwnerName, string i_OwnerPhone, string i_ModelName, string i_LicenseNumber, string i_WheelManufacturerName, eVehiclesType i_VehicleType) { Vehicle toReturn; switch (i_VehicleType) { case eVehiclesType.ElectricMotorcycle: case eVehiclesType.FuelBasedMotorcycle: toReturn = new MotorCycle(i_ModelName, i_LicenseNumber, i_WheelManufacturerName, i_VehicleType); break; case eVehiclesType.ElectricCar: case eVehiclesType.FuelBasedCar: toReturn = new RegularCar(i_ModelName, i_LicenseNumber, i_WheelManufacturerName, i_VehicleType); break; default: toReturn = new Truck(i_ModelName, i_LicenseNumber, i_WheelManufacturerName, i_VehicleType); break; } VehicleGarageCard cardToReturn = new VehicleGarageCard(i_OwnerName, i_OwnerPhone, toReturn); return(cardToReturn); }