Ce TP reprend les même objectifs que le TP précédent, excepté le fait que la structuration du code doit suivre le paradigme MVC. Pour cela, notes et coefficients ainsi que les méthodes pour les manipuler sont stockés dans un modèle, représenté par la classe Model que vous devez télécharger. A votre charge de modifier les classes View
et ControlBouton
afin de rendre l'application conforme au paradigme MVC.
Téléchargez le fichier contenant la classe ainsi que les exceptions associées : [ Model.java ]
Cette classe prend comme attributs les notes et les coefficients manipulés par l'application et propose des méthodes pour lire/modifier ces valeurs. Lors de modifications, des test sont faits et génèrent éventuellement des exceptions du type NoteOutOfBound
, CoeffOutOfBound
, NumOptionOutOfBound
et SansOptionException
. Toutes ces exceptions sont définies par des sous classes d'Exception.Comme la classe ControlBouton va manipuler le modèle, il faudra prendre garde à traiter correctement ces exceptions dans la méthode handle()
.
main()
Le fichier Appli.java
doit contenir le code suivant
public class Appli extends Application{
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
Model model = new Model();
View view=new View(model);
ControlBouton controlBouton = new ControlBouton(model, view);
ControlMenu controlMenu = new ControlMenu(view);
view.display();
}
}
Remarque : la classe ControlMenu n'utilise pas le modèle mais uniquement la vue.
View
Modifiez la classe View pour que :
Model
en paramètre,setControlBouton()
et setControlMenu()
, permettent d'associer les deux contrôleurs aux composants graphiques voulus (cf. exemple du cours pour définir ces méthodes).Normalement, la classe ControlMenu
ne change pas, à part l'appel à setControlMenu()
à ajouter dans le constructeur.
La classe ControlBouton
change beaucoup plus puisque chaque note et coefficient tiré de la vue doit être transcrit dans le modèle. De plus, comme le modèle propose une méthode pour calculer la moyenne, ce calcul n'est plus à faire directement dans ControlBouton
.