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 16:53] – [Commande] Brutus Philippe | departement_info:personnels:pb:pa3 [2025/06/26 16:45] (Version actuelle) – [Contrôle de connaissances] Brutus Philippe | ||
|---|---|---|---|
| Ligne 458: | Ligne 458: | ||
| Compléter le projet pour que les préférences lues dans le fichier alarmes.xml soient prises en compte. | 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' | + | Ce travail est à rendre par courrier électronique sous l' | 
| ---- | ---- | ||
| Ligne 478: | Ligne 478: | ||
| ==== Exercice ==== | ==== Exercice ==== | ||
| - | Compléter  | + | Compléter  | 
| - | Ce travail est à rendre par courrier électronique sous l' | + | 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 {{: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ==== Introspection (réflexivité) ==== | ||
| + | |||
| + | L' | ||
| + | |||
| + | L' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ==== Injection de dépendances ==== | ||
| + | |||
| + | L' | ||
| + | |||
| + | Elle est utile pour remplacer une classe par une autre, notamment pour la réalisation de tests unitaires avec des objets factices ([[http:// | ||
| + | |||
| + | L' | ||
| + | |||
| + | |||
| + | ==== 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.1749142402.txt.gz · Dernière modification : 2025/06/05 16:53 de Brutus Philippe
                
                