Un montage est constitué d'un ensemble de bacs. Un Bac est un Element. Un Tuyau et un
Robinet sont aussi des éléments.
Un élément peut avoir plusieurs sources, il a 0 ou 1 destination. Dans le cas de notre montage, les
sources du bac n°3 sont les deux tuyaux. La source du tuyau n°1 est le robinet n°1. La source du
tuyau n°2 est le robinet n°2. La source du robinet n° 1 est le bac n°1. La source du robinet n°2 est le
bac n°2.
La méthode fermer d'un élément appelle les méthodes fermer de toutes ses sources.
La méthode ouvrir d'un élément appelle les méthodes ouvrir de toutes ses sources.
Un robinet redéfinit les méthodes fermer et ouvrir.
La méthode demarrer de Montage appelle les méthodes ouvrir de tous ses Bacs. La méthode
stopper de Montage appelle les méthodes fermer de tous ses Bacs.
Un Bac est maintenable, c'est-à-dire qu'il peut être nettoyé et réparé.
La méthode controller de Montage sert à nettoyer tous les bacs.
Après nbMaxUtilisations du montage, il faut nettoyer tous ses bacs.
Nous vous donnons le code de la classe Application :
Application.java:
package examen;
import examen.experience.Bac;
import examen.experience.Montage;
import examen.experience.Robinet;
import examen.experience.Tuyau;
public class Application {
private Montage montage;
public Application () {
this.montage = new Montage(3);
}
public void start () {
Bac bac1 = new Bac("Bac n°1");
Bac bac2 = new Bac("Bac n°2");
Bac bac3 = new Bac("Bac n°3");
Tuyau tuyau1 = new Tuyau("Tuyau n°1");
Tuyau tuyau2 = new Tuyau("Tuyau n°2");
Robinet robinet1 = new Robinet("Robinet n°1");
Robinet robinet2 = new Robinet("Robinet n°2");
bac3.ajouterSource(tuyau1);
bac3.ajouterSource(tuyau2);
tuyau1.ajouterSource(robinet1);
tuyau2.ajouterSource(robinet2);
robinet1.ajouterSource(bac1);
robinet2.ajouterSource(bac2);
montage.ajouterBac(bac1);
montage.ajouterBac(bac2);
montage.ajouterBac(bac3);
for(int i=0 ; i<4 ; i++)