J'ai toujours été d'avis que les grandes instructions de commutation sont un symptôme d'une mauvaise conception de la programmation orientée objet. Dans le passé, j'ai lu des articles qui traitent de ce sujet et ils ont fourni des altnerative de la programmation orientée objet en fonction des approches, généralement basés sur le polymorphisme d'instancier l'objet juste pour gérer le cas.
Je suis maintenant dans une situation qui a un monsterous instruction switch basé sur un flux de données à partir d'une socket TCP, dans lequel le protocole consiste, fondamentalement, de retour à la ligne résiliée de commande, suivi par des lignes de données, suivie par un marqueur de fin. La commande peut être l'un des 100 commandes différentes, donc je voudrais trouver un moyen de réduire ce monstre instruction switch pour quelque chose de plus gérable.
J'ai fait quelques recherches sur google afin de trouver les solutions je me souviens bien, mais malheureusement, Google est devenu un terrain vague de résultats non pertinents pour de nombreux types de requêtes de ces jours.
Existe-il des modèles pour ce genre de problème? Toutes les suggestions sur les implémentations possibles?
Une pensée que j'ai eu était d'utiliser une recherche dans le dictionnaire, correspondant au texte de commande pour le type d'objet à instancier. Ceci a l'avantage agréable de simplement créer un nouvel objet et de l'insertion d'une nouvelle commande/type dans la table pour toutes les nouvelles commandes.
Cependant, cela a aussi le problème du type d'explosion. J'ai maintenant besoin de 100 nouvelles classes, plus j'ai trouver un moyen d'interface proprement le modèle de données. Est le "seul vrai instruction switch" vraiment la voie à suivre?
Je vous remercie de vos pensées, des opinions ou des commentaires.