Cet essai présente principalement l'implémentation d'un modèle de conception de décorateur simple en Java :
Tout d'abord, jetons un coup d'œil au diagramme de classes du modèle de conception de décorateur :
Comme vous pouvez le voir sur l'image, nous pouvons décorer n'importe quelle classe d'implémentation de l'interface du composant, et ces classes d'implémentation incluent également le décorateur lui-même, et le décorateur lui-même peut également être à nouveau décoré.
Ce qui suit est 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 Coffee implements Component { @Override public void method() { // TODO Auto-generated method stub System.out.println("倒入咖啡"); } } class Decorator implements Component { public Component comp; public Decorator(Component comp) { this.comp = comp; } @Override public void method() { // TODO Auto-generated method stub comp.method(); } } class ConcreteDecorateA extends Decorator { public Component comp; public ConcreteDecorateA(Component comp) { super(comp); this.comp = comp; } public void method1() { System.out.println("倒入牛奶"); } public void method2() { System.out.println("加入糖 "); } public void method() { super.method(); method1(); method2(); } } class ConcreteDecorateB extends Decorator { public Component comp; public ConcreteDecorateB(Component comp) { super(comp); this.comp = comp; } public void method1() { System.out.println("加入巧克力"); } public void method() { super.method(); method1(); } } public class TestDecoratePattern { public static void main(String[] args) { Component comp = new Coffee(); comp.method(); System.out.println("--------------------------------------------------"); Component comp1 = new ConcreteDecorateA(comp); comp1.method(); System.out.println("--------------------------------------------------"); Component comp2 = new ConcreteDecorateB(comp1); comp2.method(); System.out.println("--------------------------------------------------"); Component comp3 = new ConcreteDecorateB(new ConcreteDecorateA(new Coffee())); comp3.method(); System.out.println("--------------------------------------------------"); Component comp4 = new ConcreteDecorateA(new ConcreteDecorateB(new Coffee())); comp4.method(); } }
Résultats de l'opération :
Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun, j'espère aussi. que tout le monde prendra en charge PHP Chinese Net.
Pour plus d'articles liés à l'exploration préliminaire des modèles de conception de décorateurs Java, veuillez faire attention au site Web PHP chinois !