jak wiemy, że klasy Javy ENUM:Jak ponowne wykorzystanie kodu w stwardnieniu Enum
- niejawnie rozciąga java.lang.Enum;
- nie może rozciąć się od innych klas wyliczeniowych.
mam wiele klasy enum, jak poniżej:
enum ResourceState {
RUNNING, STOPPING,STARTTING;//...
void aMethod() {
// ...
}
}
enum ServiceState {
RUNNING, STOPPING,STARTTING,ERROR;//...
void aMethod() {
// ...
}
}
zastosowano metodę aMethod()
w enum ResourceState
i ServiceState
jest dokładnie taka sama.
w OOP, jeśli ResourceState
i ServiceState
nie są enum, powinni streszczenie tej samej metody do super-klasa abstrakcyjna, podobnie jak to:
abstract class AbstractState{
void aMethod() {
// ...
}
}
ale ResourceState jest w stanie rozciąga się od AbstractState, czy masz jakieś pomysł do obejścia?
co masz na myśli „dokładnie to samo”? Czy nie ma odniesienia do obu enum? Jeśli tak, można wyodrębnić logikę do metody statycznej. –
To właśnie teraz robię, ale szukam lepszego rozwiązania. – BlackJoker