departement_info:personnels:pb:pa3
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
departement_info:personnels:pb:pa3 [2025/05/16 18:22] – [Java et XML] Brutus Philippe | departement_info:personnels:pb:pa3 [2025/06/07 13:18] (Version actuelle) – [Récapitulons] Brutus Philippe | ||
---|---|---|---|
Ligne 443: | Ligne 443: | ||
- DOM : Document Object Model. | - DOM : Document Object Model. | ||
- | {{: | + | On utilise |
- | En voici {{: | + | Avec {{: |
+ | Voici {{: | ||
+ | ---- | ||
+ | {{: | ||
+ | En cas d' | ||
+ | ==== Exercice pour la prochaine séance ==== | ||
+ | |||
+ | Compléter le projet pour que les préférences lues dans le fichier alarmes.xml soient prises en compte. | ||
+ | |||
+ | Ce travail est à rendre par courrier électronique sous l' | ||
+ | |||
+ | ---- | ||
+ | |||
+ | {{: | ||
+ | En cas d' | ||
+ | En cas de succès, elle prend en compte les 2 préférences lues dans le fichier (couleur d' | ||
+ | |||
+ | ==== Commande ==== | ||
+ | |||
+ | Il s'agit de transformer une action à effectuer en un objet autonome (réification) qui contient tous les détails de cette action. Cette transformation permet de paramétrer des méthodes avec différentes actions, planifier leur exécution, ou les mettre dans une file d’attente. | ||
+ | |||
+ | Cela permet de séparer complètement le code initiateur de l' | ||
+ | |||
+ | On utilise beaucoup cette solution dans les interfaces graphiques où, par exemple, un item de menu et un bouton sont connectés à la même commande. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ==== Exercice ==== | ||
+ | |||
+ | Compléter {{: | ||
+ | |||
+ | Ce travail est à rendre par courrier électronique sous l' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ==== Memento ==== | ||
+ | |||
+ | Il s'agit de conserver l' | ||
+ | |||
+ | Dans les interfaces graphiques, on trouve cette solution dans le concept de presse-papiers. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ==== Exercice ==== | ||
+ | |||
+ | Compléter {{: | ||
+ | |||
+ | Ce travail est à rendre par courrier électronique sous l' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ==== Récapitulons ==== | ||
+ | |||
+ | Les arrangements caractéristiques vus précédemment sont reconnus comme bonnes pratiques en réponse à des problèmes récurrents. Ils décrivent les grandes lignes d'une solution. On peut les modifier ou les adapter en fonction des besoins. On les appelle {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ==== Contrôle de connaissances ==== | ||
+ | |||
+ | L' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | public class TacheElementaire extends Tâche{ | ||
+ | private int coût; | ||
+ | public TacheElementaire(String nom, int coût) throws RuntimeException{ | ||
+ | super(nom); | ||
+ | if (coût < 0) | ||
+ | throw new RuntimeException(" | ||
+ | this.coût = coût; | ||
+ | } | ||
+ | public int coût() { | ||
+ | return coût; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | import java.util.List; | ||
+ | import java.util.LinkedList; | ||
+ | |||
+ | public class TâcheComplexe | ||
+ | extends Tâche | ||
+ | // | ||
+ | { | ||
+ | private List< | ||
+ | public TâcheComplexe(String nom) { | ||
+ | super(nom); | ||
+ | contenu = new LinkedList< | ||
+ | } | ||
+ | public void ajoute(Tâche t) { | ||
+ | contenu.add(t); | ||
+ | } | ||
+ | public int coût() { | ||
+ | int total = 0; | ||
+ | for(Tâche t : contenu) { | ||
+ | total += t.coût(); | ||
+ | } | ||
+ | return total; | ||
+ | } | ||
+ | public int taille() { | ||
+ | return contenu.size(); | ||
+ | } | ||
+ | public void retire(int index) { | ||
+ | contenu.remove(index); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // | ||
+ | |||
+ | interface Image { | ||
+ | public void displayImage(); | ||
+ | } | ||
+ | class RealImage implements Image { | ||
+ | //... | ||
+ | } | ||
+ | |||
+ | class ProxyImage implements Image { | ||
+ | private RealImage image; | ||
+ | private String nomFichier; | ||
+ | public ProxyImage(String filename) { | ||
+ | image = null; | ||
+ | nomFichier = filename; | ||
+ | } | ||
+ | public void displayImage() { | ||
+ | if (image == null) | ||
+ | image = new RealImage(nomFichier); | ||
+ | image.displayImage(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | public class LesImages { | ||
+ | private List< | ||
+ | public LesImages() { | ||
+ | contenu = new LinkedList< | ||
+ | } | ||
+ | public void ajoute(String filename) { | ||
+ | contenu.add(new ProxyImage(filename); | ||
+ | } | ||
+ | public void displayImage(int index) { | ||
+ | contenu.get(index).displayImage(); | ||
+ | } | ||
+ | public int taille() { | ||
+ | return contenu.size(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | LesImages images = new LesImages(); | ||
+ | images.ajoute(" | ||
+ | images.displayImage(0); | ||
+ | |||
departement_info/personnels/pb/pa3.1747419768.txt.gz · Dernière modification : 2025/05/16 18:22 de Brutus Philippe