Como parte de un esfuerzo de refactorización o simplemente de un desarrollo continuo, un método particular o tal vez una clase entera puede volverse obsoleto en algún sentido. Java admite la @Deprecated
anotación para indicar que probablemente haya una mejor manera de manejar la funcionalidad en cuestión. Me imagino que esto es particularmente útil en API públicas donde los efectos de eliminar partes de una API pueden no ser conocidos. Para una API no pública y un proyecto que utiliza sistemas de control de revisión (por lo que la eliminación puede deshacerse en algún sentido), ¿cuándo es apropiado desaprobar en lugar de eliminar los elementos obsoletos?