No passado, usei a maneira padrão de adicionar @Deprecated
anotações aos métodos de API que serão removidos em uma versão posterior.
Agora estou preparando uma versão principal para uma biblioteca, com muitas partes da API removidas e renomeadas.
Para facilitar a transição para usuários existentes, talvez seja útil se a nova versão da biblioteca puder ser usada lado a lado com a versão antiga.
Vantagens
- comutação dinâmica entre versões pode ser implementada
- os aplicativos podem voltar à versão anterior se forem encontrados erros na nova versão (útil na fase beta)
Para fazer isso, eu poderia simplesmente mover a nova versão da biblioteca para um novo pacote de com.mycompany.library
paracom.mycompany.library.v2
Essa é uma prática comum ou existem outras recomendações para esse uso lado a lado das bibliotecas Java?
Fundo:
a biblioteca é um simples conversor de documentos. Portanto, além de um método convert (in, out), ele possui muitas propriedades de configuração e alguns manipuladores de eventos. Se eu fornecer uso lado a lado, os consumidores poderão instanciar e configurá-los dinamicamente:
if (useVersion2) {
com.mycompany.library.v2.Converter c = new com.mycompany.library.v2.Converter();
// configure and run
c.setOption(...);
c.convert(in, out);
} else {
com.mycompany.library.Converter c = new com.mycompany.library.Converter();
// configure and run
c.setOption(...);
c.convert(in, out);
}
(pergunta movida de /programming/37192945/ )
for a short time period
. Nós dois sabemos o que isso significa temporarl na engenharia de software. Não é? ;-)
@Deprecated
anotação ao seu código. Então, no lançamento, quando as pessoas atualizarem, verão que o código está obsoleto e devem mudar. Depois disso, remova o código todos juntos.