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