[JAVA] Motif décorateur

Enveloppez l'objet et étendez les fonctionnalités de l'objet encapsulé </ font>

Design Pattarm MENU

Dans l'exemple de code, au lieu d'ajouter de nouvelles fonctionnalités, placez l'objet String entre parenthèses.

Vérifiez avec la structure de classe suivante

classe Explication
abstract
Display.class
Faites-en un type commun pour chaque classe
Définir une méthode abstraite
Message.class Développer l'affichage
Le champ de chaîne de cette classe est enveloppé
Decorator.class Développer l'affichage
Décorateur de mise en œuvre
user(Main.class) Vérifiez le fonctionnement
  • Utilisateur Inclut la signification que les autres développeurs utilisent ce modèle

Voici l'exemple de code

abstract_class_Display


abstract class Display{
  abstract String getStr();
}

Message.class


class Message extends Display{
      String  msg;
      Message(String s){this.msg=s;}
      String  getStr() {return msg;} 
}

Decorder.class


class Decorator extends Display{
      Display   display;
      StringBuffer sb = new StringBuffer();
 
      Decorator(Display d){this.display=d;}
      String getStr(){
             return makeBorder(display.getStr());}
      String makeBorder(String msg){
             sb.append("<")
               .append(msg)
               .append(">");
             return sb.toString();
  }
}

user(Main.class)


public static void main(String[] args){
       Display d1 = new Message("Hello java");
       Display d2 = new Decorator(new Decorator(new Decorator(d1)));
       System.out.println(d2.getStr());
}

Recommended Posts

Motif décorateur
Motif décorateur
Modèle de conception ~ Décorateur ~
Modèle de prototype
Motif de souvenir
Motif médiateur
Modèle d'itérateur
Motif composite
Modèle de constructeur
Modèle de pont
Modèle de commande
Modèle de constructeur
Modèle de stratégie
Modèle d'itérateur
Modèle de visiteur
Modèle de proxy
Motif composite
Motif singleton
Motif singleton
Modèle de prototype
Modèle de façade
Modèle de médiateur
Motif de façade
Modèle de visiteur
Modèle de pont
Modèle de conception ~ Constructeur ~
[Java] Modèle de stratégie
Modèle de conception ~ Visiteur ~
Modèle de conception Java
modèle de rappel java
Modèle de conception ~ Proxy ~
Modèle de conception ~ État ~
Modèle de méthode d'usine
Modèle de conception ~ Singleton ~
Modèle de conception ~ Composite ~
Modèle de conception (2): constructeur
Modèle de conception (1): AbstractFactory
[Java] Motif singleton
Modèle de conception ~ Commande ~
Modèle d'usine abstraite
Modèle de conception ~ Itérateur ~
Modèle de conception ~ Façade ~
Modèle de conception ~ Pont ~
Modèle de conception ~ Médiateur ~
Modèle de modèle de méthode
Modèle de conception ~ Interprète ~
Modèle de méthode d'usine
Modèle de conception ~ Observateur ~
Modèle de conception ~ Prototype ~
[Java] Modèle d'adaptateur
Modèle de conception ~ Memento ~
Modèle de conception ~ Adaptateur ~
Modèle de conception ~ Poids mouche ~
Mémo de modèle Java
Refactoriser l'implémentation du pattern Decorator avec une interface fonctionnelle