Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Por qual motivo utilizar o IEnumerable?

O professor explicou no vídeo que é para o caso alterarmos o tipo da nossa Lista para outro tipo de objeto que implemente a classe IEnumerable, não precisaremos mexer no retorno do controlador, o que faz bastante sentido.

Mas nesse caso, qual real diferença entre usar uma List e um IEnumerable? Pelo que eu entendi, a Lista é um tipo de objeto que implementa o IEnumerable com mais funções, assim como o Collection, mas sendo assim, por qual motivo trocar a Lista (objeto List) para um objeto com menos funções? (sem o Count, sem o Add, sem o Remove...)

Se formos implementar o nosso retorno de alguma forma, por qual motivo simplesmente não implementar as novas funções dentro do objeto List em vez de trocar para IEnumerable e implementar o IEnumerable?

1 resposta
solução!

Olá, Yuri. Tudo bom?

Os principais motivos são :

Flexibilidade: Ao retornar IEnumerable, você está tornando sua API mais flexível e genérica. Isso significa que você pode mudar a implementação subjacente para qualquer classe que implemente IEnumerable, e o código cliente ainda funcionará, desde que ele apenas itere sobre a coleção. Essa abordagem permite que você altere a implementação interna sem afetar o contrato da sua API com os clientes.

Encapsulamento: Se você não quer que o código cliente manipule diretamente os elementos internos da coleção, usar IEnumerable é uma maneira de encapsular a coleção e limitar as operações que podem ser realizadas sobre ela. Isso pode ser útil em certos cenários para garantir a integridade e consistência dos dados.

Além disso, ao usar IEnumerable, você pode compor várias fontes de dados diferentes, independentemente de sua implementação subjacente. Por exemplo, você pode unir elementos de várias listas ou outras fontes de dados que implementam IEnumerable, tornando seu código mais modular.