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 :
et ma classe Observable :
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 } }
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 :
Et donc, je ne peux pas faire la différence dans ma méthode Observer::update() entre MESSAGEBIS1 et MESSAGE1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 UnAutreObservable{ static MESSAGEBIS1 = 0; static MESSAGEBIS2 = 1; // .... }
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 :
et pareil pour UnAutreObservable. Mais on utilise des variables globales, et ca ne m'enchante pas des masses.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Observable{ static MESSAGE1 = ++maVariableGlobale; static MESSAGE2 = ++maVariableGloable; }
Qu'en pensez vous? Avez vous une autre maniere d'utiliser le MVC?
Partager