J'utilise le modele mvc de la maniere suivante : prenons une classe Observer qui va observer un objet Observable. La méthode update s'ecrit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
Observer::upadte(objetAObserver,message) {
     if(message == Observable.MESSAGE1){
           //fait des trucs
    }
    else if (message == Observable.MESSAGE2){
          ///fait d'autres trucs
   }
}
et ma classe Observable :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Observable{
     static MESSAGE1 = 0;
     static MESSAGE2 = 1;
   // Les autres trucs utiles .....
}

Mon problème est le suivant : dans mon application, évidement, j'ai plusieurs type d'observables qui définissent d'autres messages, mais dont la numérotation est la même. En effet, si j'ai une autre classe observable,j'aurai un truc du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
UnAutreObservable{
    static MESSAGEBIS1 = 0;
    static MESSAGEBIS2 = 1;
   // ....
}
Et donc, je ne peux pas faire la différence dans ma méthode Observer::update() entre MESSAGEBIS1 et MESSAGE1.

J'ai pensé à 2 solutions, mais aucune ne me convient :
-soit utiliser des String pour les messages mais : (1)ca me semble un peu lourd (2)on peut etre confronté au mm problème
-soit utiliser une variable globale pour déterminer les numéros, et on aurait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Observable{
   static MESSAGE1 = ++maVariableGlobale;
   static MESSAGE2 = ++maVariableGloable;
}
et pareil pour UnAutreObservable. Mais on utilise des variables globales, et ca ne m'enchante pas des masses.

Qu'en pensez vous? Avez vous une autre maniere d'utiliser le MVC?