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(); }
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); }
public TrainDrivingSkillAdapter(TrainSD40 obj) { train = obj; Console.WriteLine("Now I can drive a train!"); }