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