Je développe une application BlackBerry en Java et j'ai une classe Options où tous les paramètres utilisateur sont stockés. Le problème est que j'ai besoin de vérifier certaines conditions afin de savoir comment réagir. Comme je continue d'ajouter plus de fonctionnalités, plus d'options d'interface graphique sont montrées à l'utilisateur, plus de paramètres sont stockés dans la classe Options et plus de conditions doivent être vérifiées.Quelle est la meilleure façon de se débarrasser des ifs imbriqués dans le code tout en vérifiant les conditions?
Prenez le code suivant par exemple:
private void doCallMonitoring(int callId){
/*This is the part that I want to avoid. Having
multiple nested ifs. Here's just two conditions
but as I add more, it will get unmantainable
very quickly.*/
if(Options.isActive().booleanValue()){
callTime = new Timer();
TimerTask callTimeTask = new TimerTask(){
public void run(){
callTimeSeconds++;
if((callTimeSeconds == Options.getSoftLimit().intValue()) && (Phone.getActiveCall().getStatus() == PhoneCall.STATUS_CONNECTED)){
injectDTMFTone(Phone.getActiveCall());
}else if((callTimeSeconds >= Options.getHardLimit().intValue()) && (Phone.getActiveCall().getStatus() == PhoneCall.STATUS_CONNECTED)){
injectEndCall();
}
}
};
callTime.schedule(callTimeTask, 0,1000);
}else{
System.out.println("Service not active");
}
}
Comment je veux que cela fonctionne est de vérifier toutes les options avec un seul appel et de là déterminer la malédiction de l'action. Comment puis-je réaliser une telle conception?
Je vous recommande d'acheter le livre "Refactoring" par Martin Fowler: http://martinfowler.com/books.html est un must have. – OscarRyz
Merci pour la recommandation. Je vais le chercher. – Cesar