Blog especializado sobre TI

[Dicas de Programação] Java 8 – Default Methods

Default Methods foram adicionados entre as funcionalidades que podem ser utilizadas nas Interfaces no Java 8. Antes disso toda classe que implementava uma Interface deveria implementar todos os métodos “assinados” por ela, para atender ao contrato. Isso várias vezes gerava muito código repetitivo por causa dos métodos.

Uma solução para isso era utilizar o design pattern Strategy. Criando uma outra classe somente para implementar esse método repetitivo.

Outra solução seria utilizar uma classe abstrata, ao invés de uma interface. Lembrando que ao se utilizar uma classe abstrata não temos garantia que as classes filhas implementarão todos os métodos da classe mãe, podendo levar a desencontros.

Os Default Methods surgem para dar uma solução mais simples para esse problema. Permitindo que possamos realizar a implementação de um método direto na Interface, sem a necessidade de que todas as suas filhas implementem esses métodos específicos, garantindo pelo menos uma implementação padrão (default) pra ele. Deixando para as classes filhas decidirem se querem ou não uma implementação diferente para esse método padrão (default method).

Exemplo:

public interface DefaultInterface {
    default String defaultMethod(){
        return "HelloWorld";
    }
    
    String method();
}

public class ImplementsDefaultInterface implements DefaultInterface{

    @Override
    public String method() {
        return "method";
    }
}

Espero que esse conteúdo tenha te ajudado em algo.

Se tem alguma sugestão para melhorar esse artigo, ou encontrou algum erro nele, por favor deixe um comentário, que eu corrijo. Se gostou, por favor compartilhe nas suas redes e ajude o blog.

Te vejo na próxima!

Update1: Como sugestão de um pessoal foda, uma outra vantagem que ficou de fora é: Poder adicionar novos métodos em Interfaces existentes que já foram implementadas por outras classes, sem quebrar nada.

Referência: https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html

4 respostas a “[Dicas de Programação] Java 8 – Default Methods”

  1. Avatar de Luc Lima
    Luc Lima

    Nathália, qual o seu e-mail?

    Curtir

  2. Avatar de lucaspolo
    lucaspolo

    Sensacional seu post, os default methods as vezes é um assunto muito pouco abordado pela comunidade. Eles são muito úteis quando precisamos adicionar um método numa interface porém não queremos sair alterando todas as classes que implementam ela.

    Curtido por 1 pessoa

  3. Avatar de Adriana
    Adriana

    Que legal! Não conhecia… obrigada por compartilhar!

    Curtido por 1 pessoa

  4. Avatar de HENRIQUE MAULER BORGES
    HENRIQUE MAULER BORGES

    Eu Programava em Java antes do 7. Fui olhar esses tempos e vi que muita coisa mudou na linguagem (ainda bem). Eu não conhecia esse método “default”, bem legal.

    Curtido por 1 pessoa

Deixe um comentário

Search