示例#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();
        }
示例#2
0
        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();
        }
示例#3
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);
        }