Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Uma forma alternativa de armazenar o volume total

Na aula 4, exercicio 9, seria errado eu ter uma propriedade na classe ListaNegociacoes (_volumeTotal) que seria incrementada no método adiciona() (e zerada no esvazia) e retornada no get volumeTotal() em vez de usar o reduce? Teria alguma desvantagem?

3 respostas
solução!

Bom dia! É uma solução válida sim, mas você terá que ter muito cuidado em guardar o estado correto de _volumeTotal. Já a solução do reduce não depende de estado extra e sempre lhe dirá, com certeza, o volume total.

Eu prefiro a solução com reduce. Há muitos anos eu dei manutenção em um sistema que fazia exatamente o que você propôs só que para guardar em um campo/variável o valor total do recibo. O problema é que qualquer nova funcionalidade que mudasse os itens do recibo eu teria que garantir a consistência do _volumeTotal e isso acabou introduzindo bugs. Garantir com reduce o volume total é se proteger no futuro com outros possíveis caminhos de modificação da sua lista. Não sei se consegui me expressar bem, pois hoje esta corrido aqui. Tudo bem?

Sim! Deu para entender. É que a solução que eu tinha proposto a responsabilidade seria do modelo em manter este valor atualizado. Mas concordo contigo que com o reduce (até nisso ele reduz :D) a chance de bugs! Obrigado!

esquece o que eu postei logo abaixo, você esta justamente nesse exercício que eu citei. Falha minha, hehehe

Ah! Entendi! É que o reduce esta sendo feito na view, certo? Mas depois, lá na frente, você verá no exercício que será criado uma property volume que o reduce será feito no próprio modelo.

Acho que entendi sua dúvida melhor agora. Você já viu essa parte que o reduce é feito no modelo, e não na view?