Bonjour,
j'ai un problème de conception que je n'arrive pas à résoudre d'une façon qui me conviennent.
Je dois gérer différentes protocoles qui me viennent d'un buffer.
Exemple :
1. Je reçois des données brutes
2. Je les passe à une classe qui va me permettre d'accéder aux différents champs selon la pile de protocole (Exemple IPv4/TCP/HTTP).
Mon problème est la conception des classes jusqu'à présent je ne gérait qu'un protocole et j'avais une structure qui ressemblait à :
Le problème avec cette architecture et qu'à chaque fois que je rajoute un protocole c'est comme si j'ajoutais une branche à un arbre et je dois créer x classes. Cela n'est pas viable si le projet se développe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 Class TCP { TCP(char* data); //... } Class IPv4 : public TCP { IPv4 (char* data); //... } Class IPv6 : public TCP { IPv6 (char* data); //... } Class Http : public IPv4 { Http(char* data); // ... } Class Http : public IPv6 { Http(char* data); // ... }
Est-ce qu'il existe des outils en c++ qui permettent de résoudre ce problème ? Ou une meilleur conception ?
Sachant que je veux toujours accéder aux données brute
Merci de votre aide.
p.s. je sais que la logique dirait d'avoir des héritages dans le sens des couches OSI, mais je ne vais gérer que le TCP. Donc je préfère hériter de TCP.
Partager