Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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!");
 }