Design Patern Politique et types.
Bonjour,
J'ai une classe template qui écoute un port et qui transmet les informations à traiter.
J'utilise alors un design pattern politique pour grossièrement faire :
Code:
1 2 3 4 5
| template <typename Mode>
class Listener
{
Listener(Type cible);
}; |
En fonction de Mode, le mode de transmission des information sera différent.
Dans le premier cas j'ai besoin d'une liste d'instruction (ListeInstruction pour Mode = Liste) et dans le second j'ai besoin d'une classe de traitement d'instruction (Traitement pour Mode = Param).
J'aimerais donc que la classe passée en paramètre template (Mode) détermine aussi le type "Type".
Le moyen le plus simple que je verrais serait de faire :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| template <typename Mode>
class Listener
{
Listener(Mode::Type cible);
};
class Liste
{
public :
class Type : ListeInstruction
{
};
}
Listener<Liste>( liste ); |
Mais je me demande s'il n'existe pas une meilleurs solution.
Le cas idéal serait de faire un typedef dans les classes Mode (donc dans Liste et Param) qu'on puisse réutiliser dans le constructeur de Listener mais je ne pense pas que ce soit possible...
Qu'en pensez-vous?