Bonsoir,
J'ai un petit soucis dans la réalisation d'un gestionnaire de ressources.
J'ai crée un singleton CRessourcesManager qui charge des ressources depuis le disque avec une méthode :
IRessourcesLoader est une classe interface qui doit implémenter le chargement d'un type de données.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 template<class T> QSharedPointer<T> load<T>(QString filename){ QListIterator it(m_loaders); while(it.hasNext()){ IRessourcesLoader loader = it.next(); if(loader.isValid<T>()){ return loader.load<T>(filename); } } }
Donc pour chaque implémentation de IRessourcesLoader ma méthode doit vérifier si le loader est abilité à charger le type en question.
J'aimerai conserver la possibilité d'écrire n'importe qu'elle implémentation de IRessourcesLoader et de simplement avoir à l'ajouter à CRessourcesManager avant d'apeller la méthode load avec le type attendu.
Existe-t-il une méthode plus élégante ? Que d'utiliser :
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if(loader.isValid<T>()){ return loader.load<T>(filename); }
Partager