Z metodami, polami i klasami sprawa jest prosta. Jak chcemy je usunąć to dodajemy @Deprecated
, i potem w następnej wersji można usunąć i podbić major.
Ale co jeśli mamy klasę, którą chcemy zostawić, interfejs który chcemy zostawić, ale w następnej wersji chcemy żeby ta klasa już nie implementowała tego interfejsu?
Dajmy na to wersja 1.0.0
interface Message {
String text();
}
class Email implements Message {
}
class Letter implements Message {
}
wypuszczamy wersję 2.0.0
i w niej mamy to
interface Message {
String text();
}
class Email {
}
class Letter implements Message {
}
To teraz jak zrobić, żeby jakoś dać użytkownikom znać, żeby przestali używać Email
jako implementacji Message
?
Oczywiście można opisać "Uwaga Pany, w nastęnej wersji zrobimy że klasa X nie implementuje Y", ale może jest jakieś bardziej ustandaryzowane rozwiązanie?