Bonjour !
Avant toute chose j'ai précisé "Python 3.x" car c'est la version du langage que j'utilise mais cela ne rentre pas en compte dans le souci auquel je fais face (il n'est pas non plus propre à Python d'ailleurs)
C'est une question de POO. Je suis actuellement en train de traiter des fichiers contenant l'historique de centaines de milliers de commandes, une commande étant une suite alphanumérique.
J'ai donc créé une classe Command me permettant d’interagir plus facilement avec tout ça. Il y a plusieurs niveaux de commandes. Une commande appartient à une des 2 grandes catégories (envoyées, reçues). Parmi les commandes envoyées il y a des commandes de contrôle, d'action, ... et ainsi de suite jusqu'à donner une arborescence assez complexe.
Le problème auquel je suis confronté est que je ne suis capable de déterminer la catégorie d'une commande qu'une fois celle-ci décortiquée. C'est comme si je savais que j'avais affaire à des animaux mais que je ne sois capable d'en donner l'espèce et la race qu'après une étude de celui-ci.
Si on garde le schéma des animaux, je souhaiterais appeler une fonction ou constructeur indifférencié qui me retourne la race (donc l'espèce) de l'objet différencié au plus possible.
Animal("Vache") me retournerait un objet de la classe Bovin, étant une classe fille de Mammifère, elle même classe fille de Vertébré, ...
Animal("Chat") me retournerait un objet de la classe Félin étant elle aussi fille de Mammifère, ... et ainsi de suite
Est-ce que faire des appels de constructeurs en cascade est la bonne solution ?
Animal("Vache") redirigerait vers le constructeur de Vertébré arrivé au test de présence d'os, qui lui même redirigerait vers le constructeur de Mammifère car cette espèce allaite, ...
Si vous pouviez m'aider à y voir plus clair je vous en serais très reconnaissant. C'est la fondation de mon projet, je souhaiterais donc y passer du temps pour partir sur une base solide dès le départ![]()
Partager