public RentalServices(double pricePerHour, double pricePerDay, ITaxService taxService) { PricePerHour = pricePerHour; PricePerDay = pricePerDay; _taxService = taxService; }
//Inversão de controle (retirar da classe a responsabilidade de instanciar suas dependências) //por meio de Injeção de Dependência (uma forma de realizar a inversão controle - um componente //externo instancia a dependência, que é então injetada no objeto pai). //DI pode ser implementada de várias formas: construtor, framework/container, objeto de //instanciação (builder/factory). //A classe VehicleRentalCalculator não instancia a dependência dela, e sim recebe esse objeto //instanciado (ITaxService taxService) e atribui (TaxService). public VehicleRentalCalculator(double pricePerHour, double pricePerDay, ITaxService taxService) { PricePerHour = pricePerHour; PricePerDay = pricePerDay; TaxService = taxService; }