helloworld:design_pattern:visiteur:java
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 | ||
| helloworld:design_pattern:visiteur:java [2017/01/12 15:23] – Ajout d'un commentaire sur CarElement. root | helloworld:design_pattern:visiteur:java [2020/05/11 01:19] (Version actuelle) – Suppression de "oldid" dans les liens Wikipedia root | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | [[https:// | + | [[https:// |
| + | =====Le visiteur version light===== | ||
| + | |||
| + | Le type de retour de la méthode '' | ||
| + | |||
| + | Il peut être plus propre d' | ||
| <file java VisitorDemo.java> | <file java VisitorDemo.java> | ||
| + | package cours1; | ||
| + | |||
| + | import java.util.Arrays; | ||
| + | import java.util.List; | ||
| + | import java.util.stream.Collectors; | ||
| + | |||
| // Interface contenant les méthodes pour traiter toutes les implémentations de l' | // Interface contenant les méthodes pour traiter toutes les implémentations de l' | ||
| interface CarElementVisitor { | interface CarElementVisitor { | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| + | | ||
| + | |||
| + | | ||
| } | } | ||
| Ligne 14: | Ligne 28: | ||
| // pour que la bonne méthode soit appelée en fonction de la signature. | // pour que la bonne méthode soit appelée en fonction de la signature. | ||
| interface CarElement { | interface CarElement { | ||
| - | | + | |
| } | } | ||
| Ligne 29: | Ligne 43: | ||
| } | } | ||
| - | public | + | public |
| - | visitor.visit(this); | + | |
| } | } | ||
| } | } | ||
| class Engine implements CarElement { | class Engine implements CarElement { | ||
| - | public | + | public |
| - | visitor.visit(this); | + | |
| } | } | ||
| } | } | ||
| class Body implements CarElement { | class Body implements CarElement { | ||
| - | public | + | public |
| - | visitor.visit(this); | + | |
| } | } | ||
| } | } | ||
| Ligne 50: | Ligne 64: | ||
| public Car() { | public Car() { | ||
| - | this.elements = new CarElement[] { new Wheel(" | + | this.elements = new CarElement[] { new Wheel(" |
| - | | + | new Wheel(" |
| - | new Wheel(" | + | |
| } | } | ||
| - | public | + | public |
| - | | + | |
| - | elem.accept(visitor); | + | |
| - | } | + | |
| - | | + | |
| } | } | ||
| } | } | ||
| Ligne 65: | Ligne 77: | ||
| // Une implémentation du traitement des données | // Une implémentation du traitement des données | ||
| class CarElementPrintVisitor implements CarElementVisitor { | class CarElementPrintVisitor implements CarElementVisitor { | ||
| - | public | + | public |
| - | | + | |
| } | } | ||
| - | public | + | public |
| - | | + | |
| } | } | ||
| - | public | + | public |
| - | | + | |
| } | } | ||
| - | + | ||
| - | public | + | public |
| - | | + | |
| } | } | ||
| } | } | ||
| class CarElementDoVisitor implements CarElementVisitor { | class CarElementDoVisitor implements CarElementVisitor { | ||
| - | public | + | public |
| - | | + | |
| } | } | ||
| - | public | + | public |
| - | | + | |
| } | } | ||
| - | public | + | public |
| - | | + | |
| } | } | ||
| - | public | + | public |
| - | | + | |
| } | } | ||
| } | } | ||
| Ligne 104: | Ligne 116: | ||
| public static void main(String[] args) { | public static void main(String[] args) { | ||
| CarElement car = new Car(); | CarElement car = new Car(); | ||
| - | car.accept(new CarElementPrintVisitor()); | + | |
| - | car.accept(new CarElementDoVisitor()); | + | |
| } | } | ||
| } | } | ||
| </ | </ | ||
helloworld/design_pattern/visiteur/java.1484231036.txt.gz · Dernière modification : de root
