Cet essai présente principalement la mise en œuvre d'un modèle de conception de décorateur simple à l'aide de Java:
Regardons d'abord le diagramme de classe du motif de conception du décorateur:
Comme on peut le voir sur la figure, nous pouvons décorer n'importe quelle classe d'implémentation de l'interface composante, et ces classes d'implémentation incluent également le décorateur lui-même, qui peut également être décoré à nouveau.
Vous trouverez ci-dessous un modèle de conception de décorateur simple implémenté en Java. Il fournit un système de décorateur qui commence par l'ajout de base de café et peut continuer à ajouter du lait, du chocolat et du sucre.
Interface Component {void Method ();} class Café implémente composant {@Override public void method () {// TODO Method Method Stub System.out.println ("couler dans le café"); }} Class Decorator implémente le composant {public Component Comp; Decorator public (composant comp) {this.comp = comp; } @Override public void Method () {// TODO Méthode générée automatique Stub Comp.Method (); }} classe ConcreteDeCoratea étend le décorateur {public Component Comp; public ConcreteDeCoratea (composant comp) {super (comp); this.comp = comp; } public void method1 () {System.out.println ("verser le lait"); } public void method2 () {System.out.println ("Ajouter du sucre"); } public void méthode () {super.method (); méthode1 (); Method2 (); }} classe ConcreteDeCorateB étend Decorator {public Component Comp; public ConcreteDeCorateB (composant comp) {super (comp); this.comp = comp; } public void method1 () {System.out.println ("Ajouter du chocolat"); } public void méthode () {super.method (); méthode1 (); }} classe publique TestDecoratePattern {public static void main (String [] args) {Component comp = new Coffee (); comp.Method (); System.out.println ("--------------------------------------------------"); Composant comp1 = new cantedeCoratea (comp); comp1.Method (); System.out.println ("--------------------------------------------------"); Composant comp2 = new ConcreteDeCorateB (comp1); comp2.Method (); System.out.println ("--------------------------------------------------"); Composant comp3 = new ConcreteDeCorateB (New ConcreteDecoratea (new Café ())); comp3.Method (); System.out.println ("--------------------------------------------------"); Composant comp4 = new ConcreteDeCoratea (New ConcreteDeCorateB (new Coffee ())); comp4.Method (); }} Résultats en cours:
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.