Sort
L'amélioration consiste à doubler la visualisation sur la
sortie standard par une visualisation graphique. L'architecture choisie
est la suivante :
Les modifications de InsertionSort et QuickSort se situent
uniquement au niveau du main(String []) pour prendre
en compte le passage de SortableDataTracer en Observable,
avec comme observateurs un AsciiTracer et un
WinTracer. De plus, les main(String []) se terminent
par l'instruction System.exit(0); pour quitter l'application.
Sinon, celle-ci continue car le fait d'utiliser un composant graphique
a lancé un thread pour la gestion des événements.
La classe SortableDataTracer a été profondemment
modifiée puisqu'elle étend désormais java.util.Observable
et ne fait plus d'affichage elle-même, mais prévient des traceurs
(implémentant java.util.Observer).
Les classes Sort, SortableArray, SortableData,
SortableDataStatistic
n'ont
pas été modifiées.
Les classes AsciiTracer et WinTracer implémentent
toutes les deux un Observer permettant une double visualisation
du déroulement du tri par une interface graphique (WinTracer)
et sur la sortie standard (AsciiTracer).