Je suis en train d'implémenter des processus longs qui nécessitent l'affichage d'une barre de processus - ou pourcentage de progression. La logique globale du processus de longue durée est complexe (récupération de données paginées diverses) et, par conséquent, je finis par coder en dur des lots de pourcentages à différents endroits du code. Quels sont considérés comme les meilleurs modèles de conception lorsqu'il s'agit de mettre à jour un pourcentage d'achèvement?Modèle de rapport d'état de progression
Répondre
J'ai trouvé le motif utilisé dans JFace autour de IProgressMonitor pour bien se débrouiller. Vous pourriez obtenir un aperçu en regardant la classe. Les classes supplémentaires à regarder sont ProgressMonitorDialog et IRunnableWithProgress. Vous pouvez également trouver this article de l'aide.
Si vous connaissez à l'avance la 'durée' de la tâche que vous allez effectuer et que vous savez à quelle distance vous vous trouvez, vous devez laisser la barre déterminer le pourcentage. Par exemple, si vous devez traiter un nombre connu de fichiers, attribuez ce nombre à la barre de progression lors de la construction. Ensuite, pendant le processus, soit la barre peut interroger le processus, soit le processus peut indiquer à la barre à quelle distance il se trouve (en nombre de fichiers). La barre peut calculer le pourcentage de ces deux valeurs. C'est ainsi que fonctionne le standard progress bar in Java.