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 :

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);
            }
        }
    }
IRessourcesLoader est une classe interface qui doit implémenter le chargement d'un type de données.
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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
if(loader.isValid<T>()){
        return loader.load<T>(filename);
}
Merci