2010-12-12 29 views
1

J'ai un protocole existant pour lequel j'aimerais écrire un client java. Le protocole se compose de messages qui ont un en-tête contenant le type de message et la longueur du message, puis le nombre annoncé d'octets qui est la charge utile. J'ai un peu de mal à le modéliser, car la création d'une classe pour chaque type de message me semble un peu excessive (il en résulterait plus de 20 classes pour représenter les messages qui passent par dessus le fil). Je pensais à une alternative des modèles. Mais je ne peux pas trouver celui qui fonctionne.Mise en œuvre efficace d'un protocole existant

Je ne veux rien d'extraordinaire à travailler sur les messages en dehors de la notification via publish subscribe lorsqu'un message arrive et dans certains cas, je réponds.

Des pointeurs indiquant où chercher?

Répondre

3

Une classe pour chaque type de message est la méthode OO naturelle pour modéliser cela. Le fait qu'il y ait 20 classes ne devrait pas vous rebuter. (Selon la relation entre les messages, vous pouvez probablement implémenter des fonctionnalités communes dans les superclasses.)

Mon conseil est de ne pas trop se soucier de l'efficacité pour commencer. Concentrez-vous simplement sur l'obtention d'API propres qui fournissent les fonctionnalités requises. Une fois que tout fonctionne, faites le profil du code et voyez si les classes de protocole constituent un goulot d'étranglement significatif. Si elles sont ... puis pensez à la façon de rendre le code plus efficace.