static void Main(string[] args) { CarRegularBuilder carBuilder = new CoupeBuilder(); CarAssembler carAssembler = new CarAssembler(carBuilder); // in this case it is ok to get the product from assembler,as created products belong to the same family // and if it is not the case - client code should retrieve product directly from builder // ex. : carBuilder.GetCar(); ICar car = carAssembler.CreateCar(); PrintCarInfo(car); // build the car using predefined sequence of steps. // This way we can ensure product is not returned in an invalid state(without wheels for exampe). ICarPredifinedSequenceBuilder sequencialCarBuilder = new SequencialCarBuilder(); var theCar = sequencialCarBuilder .MountTheFrame() .MountWheels() .MountGearBox() .MountBody() .MountEngine(3.2m) .GetCar(); Console.WriteLine("\n"); PrintCarInfo(theCar); Console.ReadLine(); }
public void AddCar(CarModel car) { _carRepository.AddCar(CarAssembler.FromModelToEntity(car)); }