Also habe ich einen Server mit netty geschrieben und ich habe nichts anderes damit geschrieben, also frage ich mich, ob meine Herangehensweise an die Pipeline korrekt ist.
Ich habe 2 Standard-Handler in Server und Client, ObjectEncoder und Decoder und ich dachte über eine neue Handler für jede Funktion, die ich auf meinem Server zum Beispiel habe ich einen UserAuthenticationHandler, UserActionHandler und jeder von ihnen behandelt unterschiedliche Pakete und Pässe sie zu entsprechenden Klassen.
Also dies ist einer der Ansatz, den ich in meinen Gedanken der andere ist ein Handler für jede Funktion, was bedeutet, ich muss einen großen Schalter schreiben, um alle von ihnen zu behandeln.
Ist es in Ordnung, den ersten Ansatz zu verwenden oder sollte ich mit dem zweiten bleiben?
Ist mein Handler-Design gut?
Beispiel erster Ansatz
public class UserAuthenticationHandler extends AbstractPacketHandler {
private User user;
public UserAuthenticationHandler(User user, DatabaseConnection databaseConnection) {
this.user = user;
new UserAuthenticator(databaseConnection);
}
@Override
protected void handlePacket(Packet packet) {
switch (packet.packetType){
case "START_LOGIN":
UserAuthenticator.startLoginProcess(packet, user);
}
}
@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
super.channelActive(ctx);
}
public User getUser(){
return user;
}
}
Zweiter Ansatz
Man stelle sich vor die erste, aber mit 50 + Schalter Fällen und groß wie die Hölle Konstruktor für jede Klasse.
Bitte geben Sie uns Codebeispiele von dem, was Sie bisher versucht haben. So können wir Ihnen effektiver helfen. – Ivonet
@ivonet Ich habe meinen aktuellen Ansatz hinzugefügt. – Bleo