Ejemplo n.º 1
0
 public Car(double fillLevel)
 {
     fuelTank        = new FuelTank(fillLevel);
     engine          = new Engine(fuelTank);
     fuelTankDisplay = new FuelTankDisplay(fuelTank);
     engine.Stop();
 }
Ejemplo n.º 2
0
 public Car()
 {
     fuelTank        = new FuelTank(20);
     engine          = new Engine(fuelTank);
     fuelTankDisplay = new FuelTankDisplay(fuelTank);
     engine.Stop();
 }
Ejemplo n.º 3
0
        private void BuildCar(double fuelLevel = 20, int maxAcceleration = 10)
        {
            if (maxAcceleration > 20)
            {
                maxAcceleration = 20;
            }
            else if (maxAcceleration < 5)
            {
                maxAcceleration = 5;
            }

            fuelTank        = new FuelTank();
            fuelTankDisplay = new FuelTankDisplay(fuelTank);
            engine          = new Engine(fuelTank);

            if (fuelTank is Subject && fuelTankDisplay is Observer)
            {
                ((Subject)fuelTank).Attach((Observer)fuelTankDisplay);
            }

            if (fuelTank is Subject && engine is Observer)
            {
                ((Subject)fuelTank).Attach((Observer)engine);
            }

            fuelTank.Refuel(fuelLevel);

            drivingProcessor          = new DrivingProcessor(maxAcceleration);
            drivingInformationDisplay = new DrivingInformationDisplay(drivingProcessor);

            if (drivingProcessor is Subject && drivingInformationDisplay is Observer)
            {
                ((Subject)drivingProcessor).Attach((Observer)drivingInformationDisplay);
            }
        }
Ejemplo n.º 4
0
 public Car(double fuelLevel)
 {
     fuelTank                  = new FuelTank(fuelLevel);
     fuelTankDisplay           = new FuelTankDisplay(fuelTank);
     engine                    = new Engine(fuelTank);
     drivingProcessor          = new DrivingProcessor();
     drivingInformationDisplay = new DrivingInformationDisplay(drivingProcessor);
 }
Ejemplo n.º 5
0
 public Car(double fuelLevel, int maxAcceleration)     // car #2
 {
     fuelTank                  = new FuelTank(fuelLevel);
     fuelTankDisplay           = new FuelTankDisplay(fuelTank);
     drivingProcessor          = new DrivingProcessor(maxAcceleration);
     drivingInformationDisplay = new DrivingInformationDisplay(drivingProcessor);
     engine = new Engine(fuelTank);
 }
Ejemplo n.º 6
0
        public IOnBoardComputerDisplay onBoardComputerDisplay; // car #3



        public Car(double fuelLevel = 20, int maxAcceleration = 10) // car #2
        {
            fuelTank                  = new FuelTank(fuelLevel);
            engine                    = new Engine(fuelTank);
            fuelTankDisplay           = new FuelTankDisplay(fuelTank);
            drivingProcessor          = new DrivingProcessor(engine, maxAcceleration, fuelTank);
            drivingInformationDisplay = new DrivingInformationDisplay(drivingProcessor);
            onBoardComputer           = new OnBoardComputer(drivingProcessor);
            onBoardComputerDisplay    = new OnBoardComputerDisplay(onBoardComputer);
        }
Ejemplo n.º 7
0
 public Car(double fuelLevel)
 {
     fuelTank                  = new FuelTank(fuelLevel);
     engine                    = new Engine(fuelTank);
     fuelTankDisplay           = new FuelTankDisplay(fuelTank);
     drivingProcessor          = new DrivingProcessor();
     drivingInformationDisplay = new DrivingInformationDisplay(drivingProcessor);
     onBoardComputer           = new OnBoardComputer(drivingProcessor, fuelTank);
     onBoardComputerDisplay    = new OnBoardComputerDisplay(onBoardComputer);
 }
Ejemplo n.º 8
0
 public Car(double fuelLevel, int maxAcceleration)
 {
     fuelLevel                 = Math.Max(Math.Min(fuelLevel, 60), 0);
     fuelTank                  = new FuelTank(fuelLevel);
     engine                    = new Engine(fuelTank);
     fuelTankDisplay           = new FuelTankDisplay(fuelTank);
     drivingProcessor          = new DrivingProcessor(engine, maxAcceleration);
     onBoardComputer           = new OnBoardComputer(drivingProcessor, fuelTank);
     drivingInformationDisplay = new DrivingInformationDisplay(drivingProcessor);
     onBoardComputerDisplay    = new OnBoardComputerDisplay(onBoardComputer);
 }
Ejemplo n.º 9
0
 public Car(double fuelLevel, int maxAcceleration) // car #2
 {
     Console.WriteLine($"New Car. fuelLevel: {fuelLevel}, maxAcceleration: {maxAcceleration}");
     fuelTank                  = new FuelTank(fuelLevel);
     drivingProcessor          = new DrivingProcessor();
     engine                    = new Engine(fuelTank, drivingProcessor);
     fuelTankDisplay           = new FuelTankDisplay(fuelTank);
     drivingInformationDisplay = new DrivingInformationDisplay(drivingProcessor);
     _maxAcceleration          = Math.Clamp(maxAcceleration, MIN_ACCELERATION, MAX_ACCELERATION);
     onBoardComputer           = new OnBoardComputer(drivingProcessor, fuelTank);
     onBoardComputerDisplay    = new OnBoardComputerDisplay(onBoardComputer);
 }
Ejemplo n.º 10
0
 public Car(double fuelLevel = 20)
 {
     engine   = new Engine();
     fuelTank = new FuelTank()
     {
         FillLevel = fuelLevel, IsOnReserve = fuelLevel < 5, IsComplete = fuelLevel == 60
     };
     fuelTankDisplay = new FuelTankDisplay()
     {
         FillLevel = fuelTank.FillLevel, IsOnReserve = fuelTank.IsOnReserve, IsComplete = fuelTank.IsComplete
     };
 }
Ejemplo n.º 11
0
 public OnBoardComputer(IDrivingProcessor drivingProcessor, IFuelTank fuelTank)
 {
     _fuelTank         = fuelTank;
     _drivingProcessor = drivingProcessor;
     ((DrivingProcessor)_drivingProcessor).SpeedChanged += TripAverageSpeedSetUp;
     ((DrivingProcessor)_drivingProcessor).SpeedChanged += TripDrivenDistanceUp;
     TripDrivingTime             = 0;
     TripRealTime                = 0;
     TripDrivenDistanceDouble    = 0;
     TotalDrivenDistanceDouble   = 0;
     consumptionsOnLast100Second = new Queue <double>(100);
     Enumerable.Range(0, 99).ToList().ForEach(c => consumptionsOnLast100Second.Enqueue(4.8));
 }
Ejemplo n.º 12
0
        public DrivingProcessor(IEngine engine, int maxAcceleration, IFuelTank fuelTank)
        {
            if (maxAcceleration < 5)
            {
                maxAcceleration = 5;
            }
            if (maxAcceleration > 20)
            {
                maxAcceleration = 20;
            }

            _engine          = engine;
            _maxAcceleration = maxAcceleration;
            FuelTank         = fuelTank;
        }
Ejemplo n.º 13
0
    public Car(double fuelLevel)
    {
        fuelTank        = new FuelTank();
        engine          = new Engine(fuelTank);
        fuelTankDisplay = new FuelTankDisplay(fuelTank);

        if (fuelLevel >= 60)
        {
            this.fuelTank.Refuel(60);
        }
        else
        {
            fuelTank.Refuel(fuelLevel);
        }
        engine.Stop();
    }
Ejemplo n.º 14
0
        public Car(double fuelLevel = 20)
        {
            fuelTank        = new FuelTank();
            fuelTankDisplay = new FuelTankDisplay(fuelTank);
            engine          = new Engine(fuelTank);

            if (fuelTank is Subject && fuelTankDisplay is Observer)
            {
                ((Subject)fuelTank).Attach((Observer)fuelTankDisplay);
            }

            if (fuelTank is Subject && engine is Observer)
            {
                ((Subject)fuelTank).Attach((Observer)engine);
            }

            fuelTank.Refuel(fuelLevel);
        }
Ejemplo n.º 15
0
        public Car(double fuelLevel, int maxAcceleration)
        {
            engine                    = new Engine();
            fuelTankDisplay           = new FuelTankDisplay();
            fuelTank                  = new FuelTank(fuelLevel);
            drivingInformationDisplay = new DrivingInformationDisplay();
            drivingProcessor          = new DrivingProcessor(maxAcceleration);
            onBoardComputer           = new OnBoardComputer();
            onBoardComputerDisplay    = new OnBoardComputerDisplay();

            ((Engine)engine).OnEngineConsume += ((FuelTank)fuelTank).HandleConsumeEvent;
            ((OnBoardComputer)onBoardComputer).OnBoardComputerData += ((OnBoardComputerDisplay)onBoardComputerDisplay).ComputerDataHandler;
            ((FuelTank)fuelTank).OnFuelTankChange += ((FuelTankDisplay)fuelTankDisplay).FillLevelStateHandler;
            ((FuelTank)fuelTank).OnFuelTankChange += ((Engine)engine).FuelTankHandler;
            ((FuelTank)fuelTank).OnFuelTankChange += ((OnBoardComputer)onBoardComputer).FuelTankHandler;
            ((DrivingProcessor)drivingProcessor).OnDrivingProcessorChange += ((OnBoardComputer)onBoardComputer).DrivingProcessorHandler;
            ((DrivingProcessor)drivingProcessor).OnDrivingProcessorChange += ((DrivingInformationDisplay)drivingInformationDisplay).ActualSpeedHandler;
            ((DrivingProcessor)drivingProcessor).OnDrivingProcessorChange += ((Engine)engine).DrivingProcessorHandler;
            ((OnBoardComputerDisplay)onBoardComputerDisplay).OnTripReset  += ((OnBoardComputer)onBoardComputer).TripResetHandler;
            ((OnBoardComputerDisplay)onBoardComputerDisplay).OnTotalReset += ((OnBoardComputer)onBoardComputer).TotalResetHandler;
            ((FuelTank)fuelTank).SendState();
        }
Ejemplo n.º 16
0
 public Engine(IFuelTank fuelTank) => this.fuelTank = fuelTank;
Ejemplo n.º 17
0
 public FuelTankDisplay(IFuelTank tank)
 {
     fuelTank = tank;
 }
Ejemplo n.º 18
0
 public Car(double fuelLevel = 20)
 {
     fuelTank        = new FuelTank(fuelLevel);
     engine          = new Engine(fuelTank as FuelTank);
     fuelTankDisplay = new FuelTankDisplay(fuelTank as FuelTank);
 }
Ejemplo n.º 19
0
 public Car()
 {
     engine          = new Engine();
     fuelTank        = new FuelTank();
     fuelTankDisplay = new FuelTankDisplay();
 }
Ejemplo n.º 20
0
 public Engine(IFuelTank fuelTank)
 {
     _fuelTank       = fuelTank;
     ConsumptionList = new List <double>();
 }
Ejemplo n.º 21
0
 public FuelTankDisplay(IFuelTank fuelTank)
 {
     _fuelTank = fuelTank;
 }
 public OnBoardComputer(IDrivingProcessor drivingProcessor, IFuelTank fuelTank)
 {
     _drivingProcessor = drivingProcessor;
     _fuelTank         = fuelTank;
     Enumerable.Range(0, 100).ToList().ForEach(c => _consumptionInLast100Sec.Add(0.048));
 }
Ejemplo n.º 23
0
 public Engine(IFuelTank fuelTank)
 {
     _fuelTank = fuelTank;
 }
Ejemplo n.º 24
0
 public Engine(FuelTank fuelTank)
 {
     this.fuelTank = fuelTank;
 }
Ejemplo n.º 25
0
 public Engine(IFuelTank fuelTank)
 {
     this.fuelTank = fuelTank;
     IsRunning     = false;
 }
Ejemplo n.º 26
0
 public OnBoardComputer(IDrivingProcessor drivingProcessor, IFuelTank fuelTank)
 {
     _drivingProcessor             = drivingProcessor;
     _fuelTank                     = fuelTank;
     _consumptionForLast100Seconds = SetupDefaultConsumption();
 }
Ejemplo n.º 27
0
 public Engine(IFuelTank fuelTank, IDrivingProcessor drivingProcessor)
 {
     _isRunning        = false;
     _fuelTank         = fuelTank;
     _drivingProcessor = drivingProcessor;
 }
Ejemplo n.º 28
0
 public FuelTankDisplay(IFuelTank fuelTank)
 {
     this.fuelTank = fuelTank;
 }
Ejemplo n.º 29
0
 public Car(IFuelTank fuelTank)
 {
     _fuelTank = fuelTank;
 }
Ejemplo n.º 30
0
 public Engine(IFuelTank tank)
 {
     fuelTank = tank;
 }