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

[Sugestão] A criação da interface IAvaliavel pareceu desnecessária.

Já que até o fim da aula 4 as classes Banda e Album não passaram a ser instanciadas pelo nome da interface IAvaliavel em nenhum lugar do programa principal ou em outras classes que as usam, não ficou clara a necessidade da criação da interface.
Se as listas e variáveis ainda são explicitamente do tipo Album e/ou Banda, o método avaliar e a propriedade média ficariam acessíveis de qualquer forma, mesmo que a interface fosse removida (e, claro, as assinaturas pelas classes Album e Banda).

Ainda não sei se em outros cursos este projeto é retomado e feita a refatoração para que, pelo menos em partes do projeto, seja declarado o tipo IAvaliavel com um caso de uso autêntico.

Neste ponto do curso, da forma como foi demonstrado em aula, Infelizmente achei que ficou confuso, e a real utilidade e necessidade de Interfaces em POO não fica clara.

1 resposta
solução!

Olá! Como vai?

A implementação de interfaces é um conceito importante na programação orientada a objetos, mesmo que, inicialmente, não pareça trazer benefícios diretos.

A interface IAvaliavel atua como um contrato que garante que qualquer classe que a implemente terá os métodos e propriedades definidos, como AdicionarNota() e Media. Isso é útil para garantir consistência entre diferentes classes que compartilham comportamentos semelhantes, como Banda e Album.

Embora no momento do curso as classes Banda e Album não sejam manipuladas através da interface, a introdução dela prepara o código para futuras extensões e manutenções. Por exemplo, se você decidir criar uma lista de objetos que podem ser avaliados, usando a interface, você poderia facilmente iterar sobre essa lista e chamar métodos como AdicionarNota() sem se preocupar com o tipo específico de cada objeto.

Além disso, a interface facilita a implementação de novos tipos que também podem ser avaliados no futuro, como uma classe Musica. Isso promove a flexibilidade e a escalabilidade do seu código.

Espero que, ao avançar no curso, você veja mais exemplos de como interfaces podem ser usadas de forma eficaz para melhorar a arquitetura do software.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.