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

Dúvida sobre Interface e Classe

Eu entendi que é melhorar criar um método com classe generica, mas isso poderia ser feita na mesma classe converte dados, em vez de criar uma interface para criar esse cabeçalho? Por exemplo, em vez de criar a Interface eu ja criaria ali mesmo na classe converte dados. Da seguinte forma:

public class ConverteDados<T>{
    private ObjectMapper mapper = new ObjectMapper();
        public  T obterDados(String json, Class<T> classe) {
            try {
                return mapper.readValue(json, classe);
            } catch (JsonProcessingException e) {
                throw new RuntimeException(e);
            }
        }
    
    }

Funcionaria? E qual a vantagem de utilizar a interface?

3 respostas

Oi Clara, tudo bem?

Você pode fazer do jeito que falou, colocando a função direto na classe ConverteDados e sem usar uma interface. Mas usar interfaces é bom porque ajuda a organizar e flexibilizar o código.

Quando usamos uma interface, definimos um padrão que qualquer classe que use essa interface deve seguir. Isso é útil quando várias classes têm funções parecidas.

Por exemplo, se um dia você precisar converter outros tipos de informações, como DadosEpisodio ou DadosAtor, basta criar novas classes usando a interface IConverteDados. Assim, não precisa mudar a classe ConverteDados toda hora. E se quiser mudar a forma de conversão depois, só ajusta na interface, e todas as classes que a usam serão atualizadas.

Resumindo, usar interfaces deixa o código mais organizado, fácil de mudar e manter.

Um abraço e bons estudos.

Então no caso, se em algum momento eu quiser converter dados mas não de forma generica eu posso criar outra classe, por exemplo "ConverteDadosSerie" e ainda sim utilizar a interface e fazer o override passando um tipo DadosSerie, é isso?

solução!

Exatamente, Clara!

Se você quiser fazer uma conversão específica para séries, por exemplo, você pode criar uma classe chamada ConverteDadosSerie que implementa a interface IConverteDados. Assim, você pode usar a função de sobrescrita (override) para adaptar o comportamento da interface conforme suas necessidades específicas para DadosSerie.

Usar a interface permite essa flexibilidade. Mesmo que você crie uma classe especializada, como ConverteDadosSerie, ao implementar a interface, você garante que ela terá os métodos e comportamentos necessários. Se no futuro surgir uma nova necessidade ou mudança na forma como as conversões são feitas, você pode facilmente fazer ajustes na interface sem ter que modificar todas as classes individuais.

Isso ajuda a manter seu código organizado, modular e fácil de expandir.

Espero que tenha esclarecido sua dúvida!

Um abraço.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software