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étodo getNext() 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étodo getNext(), 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.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3