Ich habe 2 Anwendungen:Wie man Schalter mit Polymorphismus ersetzt?
es mehrere Arten application_1
und applicaion_2
appplication_1
zu application_2
Nachrichten unterschiedlicher Typen sendet. Ich kann enum dieser Typen deklarieren.
enum MessageType{
TYPE_1,
TYPE_2,
...
}
In application_2 Rahmen schlage ich vor, mich API
folgende schreiben verwendenpublic void handle(Object o){
//logic
}
ich darüber nachdenken, wie Klassen zu bauen jede Nachricht einzeln zu verarbeiten.
Ich verstehe, dass ich allgemeinste Art für alle Nachrichten erklären können:
abstract class AbstractMessage{
MessageType type;
Object o;
//...
}
und in application_2
Innengriff ich smth so schreiben kann:
MessageType mt = ((AbstractMessage) o).getType();
switch(mt){
case TYPE_1:
//handle TYPE_1
break;
case TYPE_2:
//handle TYPE_2
break;
....
}
Aber dieser Code hässlich aussieht.
Bitte helfen Sie, eine bessere Lösung zu finden.
@Downvoter, bitte erläutern, was Sie nicht verstanden haben. Ich bin bereit, meine Frage zu verbessern. Ich habe wirklich versucht, klare Frage zu stellen – gstackoverflow
Es scheint, was Sie suchen, ist das [Strategie Muster] (https://en.wikipedia.org/wiki/Strategy_pattern#Java). –
@Thomas Fritsch, vielleicht aber könntest du ein bisschen mehr Details geben? – gstackoverflow