1
resposta

Dúvida na implementação da classe Episodio.

No momento em que eu vou testar a implementação do método de filtragem em um objeto da classe episódio, a mensagem que deveria aparecer não deveria ser "Adicione à sua lista para assistir mais tarde." ao invés de "Título bem avaliado no momento."? Já que coloquei '10' em totalViews?

Episodes primeiro = new Episodes();
primeiro.setNum(1);
primeiro.setSeries(s1);
primeiro.setTotalViews(10);

RecomendationFilter filter = new RecomendationFilter();
filter.filter(primeiro);

Código do método implementado na classe Episodes:

    @Override
    public int getClassification() {
        if (totalViews > 100) {
            return 4;
        } else{
            return 2;
        }
    }

Código na classe RecomendationFilter:

public class RecomendationFilter {
    public void filter(Classified c) {
        if (c.getClassification() >= 4){
            System.out.println("Este título está entre os preferidos no momento.");
        } else if (c.getClassification() >= 2) {
            System.out.println("Título bem avaliado no momento.");
        } else {
            System.out.println("Adicione à sua lista para assistir mais tarde.");
        }
    }
}

Na classe Episodes eu poderia mudar o If/Else para poder aceitar outros números além de 4 e 2 como resposta sem causar problemas gerais?

1 resposta

Olá, Diogo! Vejo que você está trabalhando duro no seu código, isso é ótimo!

Sobre sua dúvida, o comportamento do seu código está correto de acordo com a implementação atual. Quando você define totalViews como 10 na classe Episodes, o método getClassification() retorna 2, pois 10 não é maior que 100. Portanto, no método filter() da classe RecomendationFilter, ele cai no segundo if, imprimindo "Título bem avaliado no momento.".

Quanto à sua pergunta sobre alterar o método getClassification() na classe Episodes para aceitar outros números além de 4 e 2, sim, você pode fazer isso! A maneira como você implementa a lógica de classificação depende inteiramente das suas necessidades. Por exemplo, você poderia implementar uma lógica que retorna diferentes classificações dependendo do número de visualizações, como:

@Override
public int getClassification() {
    if (totalViews > 100) {
        return 4;
    } else if (totalViews > 50) {
        return 3;
    } else if (totalViews > 10) {
        return 2;
    } else {
        return 1;
    }
}

Nesse caso, você também precisaria ajustar o método filter() na classe RecomendationFilter para lidar com as novas possíveis classificações.

Espero ter ajudado e bons estudos!