helloworld:design_pattern:visiteur:java
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| helloworld:design_pattern:visiteur:java [2016/12/03 21:24] – Création 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 { | ||
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| + | | ||
| + | |||
| + | | ||
| } | } | ||
| // Interface qui contiendra les données qui seront traitées par la méthode visit. | // Interface qui contiendra les données qui seront traitées par la méthode visit. | ||
| + | // Il faut absolument passer par une interface et que la fonction soit implémentée dans le POJO | ||
| + | // pour que la bonne méthode soit appelée en fonction de la signature. | ||
| interface CarElement { | interface CarElement { | ||
| - | | + | |
| } | } | ||
| Ligne 27: | 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 48: | 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 63: | 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 102: | 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.1480796673.txt.gz · Dernière modification : de root
