Envoyé par
oumay
chaque agent doit vérifier s'il possède cette compétence ou pas puis il envoi à son tour un message pour informer qu'il est apte ou bien non. donc comment un agent peut vérifier s'il possède cette méthode ou pas.
public enum Competence {CALCUL, DEPLACEMENT, DESSIN}
1 2 3 4 5 6 7 8
| public abstract class BaseAgent {
public abstract boolean estCompetentPour(Competence competence);
public void dessiner(){throw new IllegalAccessException("Agent incompétent pour le dessin");}
public void deplacer(){throw new IllegalAccessException("Agent incompétent pour le deplacement");}
public void calculer(){throw new IllegalAccessException("Agent incompétent pour le calcul");}
//...
} |
1 2 3 4 5 6 7 8 9 10 11 12 13
| public class MonAgent extends BaseAgent {
public boolean estCompetentPour(Competence competence){
switch (Competence) {
case CALCUL:
return true;
default:
return false;
}
}
public void dessiner(){
// faire du joli dessin
}
} |
1 2 3 4 5
|
BaseAgent agent = .....
if (agent.estCompetentPour(Competence.DESSIN)) {
agent.dessiner();
} |
Tout simplement, pas besoin de tester l'existence d'une méthode particulière.
Partager