Dans le cadre d'un effort de refactorisation ou simplement d'un développement continu, une méthode particulière ou peut-être une classe entière peut devenir obsolète dans un certain sens. Java prend en charge l' @Deprecated
annotation pour indiquer qu'il existe probablement une meilleure façon de gérer la fonctionnalité en question. J'imagine que cela est particulièrement utile dans les API publiques où les effets de la suppression de parties d'une API peuvent ne pas être connus. Pour une API non publique et un projet qui utilise des systèmes de contrôle des révisions (la suppression peut donc être annulée dans un certain sens), quand est-il approprié de déprécier plutôt que de supprimer le ou les éléments obsolètes?