Um exemplo mais prático de um método padrão
Java para Iniciantes (Oracle)
Posted on October 8, 2024
O exemplo anterior mostrou o uso de métodos padrão, mas não em um cenário prático.
A interface Series foi amplamente utilizada, com muitos programas dependentes dela.
Foi descoberto que várias implementações de Series adicionavam um método que retorna um array com os próximos n elementos da série.
Decidiu-se melhorar a interface Series com o método
getNextArray(int n)
, onde n especifica o número de elementos a serem recuperados.Antes dos métodos padrão, adicionar esse método quebraria códigos existentes que não o definissem.
Com os métodos padrão, o novo método pode ser adicionado à interface Series sem causar problemas nos códigos existentes.
Em alguns casos, métodos padrão adicionados a uma interface relatam um erro se forem usados, quando não é possível fornecer uma implementação que funcione em todas as situações.
Esses métodos padrão definem código opcional.
Em certos casos, um método padrão pode ser definido para funcionar em qualquer situação.
O método
getNextArray()
é um exemplo, pois ele pode ser implementado usando o métodogetNext()
já exigido pela interface Series.É possível implementar a nova versão de Series com o método padrão
getNextArray()
.
O método padrão
getNextArray()
é implementado utilizando o métodogetNext()
, já presente na especificação original de Series.Qualquer classe que implemente Series poderá usar
getNextArray()
sem precisar sobrepor o método.Códigos existentes não serão invalidados com a adição de
getNextArray()
.Classes podem fornecer sua própria implementação de getNextArray() se necessário.
Vantagens do método padrão:
Permite que interfaces evoluam sem invalidar códigos existentes.
Fornece funcionalidade opcional sem exigir uma implementação de espaço reservado.
No caso de
getNextArray()
, se uma implementação de Series não precisar do método, ela não precisará fornecer uma implementação de espaço reservado, resultando em um código mais limpo.
Posted on October 8, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.