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/06/05 23:38] – [Exercice] Brutus Philippe | departement_info:personnels:pb:pa3 [2025/06/07 13:18] (Version actuelle) – [Récapitulons] Brutus Philippe | ||
---|---|---|---|
Ligne 486: | Ligne 486: | ||
==== Memento ==== | ==== Memento ==== | ||
- | Il s'agit de conserver l' | + | Il s'agit de conserver l' |
+ | |||
+ | Dans les interfaces graphiques, on trouve cette solution dans le concept de presse-papiers. | ||
{{: | {{: | ||
Ligne 495: | Ligne 497: | ||
Ce travail est à rendre par courrier électronique sous l' | 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.1749166717.txt.gz · Dernière modification : 2025/06/05 23:38 de Brutus Philippe