static void Main(string[] args) { var train = new TrainSD40(); var car = new CarVehicle(); var trainAdapter = new TrainDrivingSkillAdapter(train); var worker = new Worker(); var consoleObserver = new ConsoleLoggerObserver(); using (var fileLoggerObserver = new FileLoggerObserver("./logger-output.log")) { if (car is IObservableSubject s1) { s1.Attach(consoleObserver); s1.Attach(fileLoggerObserver); } if (train is IObservableSubject s2) { s2.Attach(consoleObserver); s2.Attach(fileLoggerObserver); } worker.Drive(car, GearboxPosition.Forward); worker.Drive(trainAdapter, GearboxPosition.Forward); } car.DetachAll(); train.DetachAll(); }
public void Execute() { InputData(); IVehicle vehicle = null; switch (VehicleType) { case 1: vehicle = new CarVehicle(VehicleID); break; case 2: vehicle = new MotorcycleVehicle(VehicleID); break; default: Console.WriteLine("Error: Invalid vehicle type: {0}", VehicleType); break; } Shop.AddVehicle(vehicle); OutputData(); }
static void Main(string[] args) { var train = new TrainSD40(); var car = new CarVehicle(); var trainAdapter = new TrainDrivingSkillAdapter(train); var worker = new Worker(); worker.Drive(car, GearboxPosition.Forward); worker.Drive(trainAdapter, GearboxPosition.Forward); }