DEV Community

Paula Santana
Paula Santana

Posted on

Java Efetivo Essencial - Método Padrão

Proteja as interfaces para a posteridade

_Esta é uma série baseada no entendimento de tópicos relacionados ao livro com foco no resumo.
_

Interfaces

Já sabemos que antes do Java 8 não era possível adicionar métodos sem gerra um quebra nas interfaces, ou seja, fazer com que todas as classes que implementasse a interfasse tivessem que implementar o novo método.
Com o Java 8 surgiram os métodos padrões, que permitem que adicionemos um método com implementação na interface, ou seja, nesse caso as classes que implementam a interface herdam o método padrão.
Porém é necessário que ter em mente que alterações em interfaces pode ser arriscado.

Atenção

Mesmo sendo possível adicionar o método padrão e ele ser utilizado por todas classes que implementam a interface não é possível ter controle de que a execução do método novo será com sucesso em todas as implementações.
O livro usa bastante exemplos da própria base de código do Java e então o exemplo citado sobre esse ponto é da interface de Collections, que teve métodos padrão implementados para que as lambdas fossem implementadas em todas as implementações de coleções.

Problemas

Um dos métodos implementados em Collections é o removeIf que não tem um efeito possitivo em todas implementações, como citado no livro algumas classes wraper por exemplo como a SynchronizedCollection da biblioteca Apache Commons acabam não executando bem esse método( pelo menos até a data de escrita do livro), isso porque quando um método padrão novo é implementado pode não conseguir atender todas as possibilidades de implementação. Então ao adicionarmos um método padrão precisamos ter em mente isso.

Então

Então devemos ficar atentos na execução do método nas implementações da interface.
E isso porque pode parece um recurso fácil de utilizar, mas ainda temos que garantir estabilidade na escrita de uma interface. Sempre se questione quando uma interface mudar muito, isso pode ser um problema no design da aplicação.
Tenha cautela ao projetar intefaces.

Resumo do Resumo

Métodos padrão são bons, mas devem ser utilizados em exceções em especial quando se tem noção das implementações da interface de modo que consiga projetá-lo bem.
Teste bem suas interfaces, implementando clientes das interfaces de forma totalmente diferente.
Corrigir erros depois de implementados em interfaces acaba sendo um trabaho mais difícil.

Top comments (0)