English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Exploración inicial del patrón de diseño Decorator en Java

Este artículo esboza la implementación en Java de un patrón de diseño de decorador simple:

Veamos primero el diagrama de clases del patrón de diseño del decorador:


Como se puede ver en la imagen, podemos decorar cualquier clase que implemente la interfaz Component, y estas clases también incluyen al decorador mismo, que también puede ser decorado.

A continuación, se muestra un patrón de diseño de decorador simple implementado en Java, que ofrece una sistema de decoradores desde la adición básica de café, y se puede continuar con leche, chocolate y azúcar.

interface Component {
  void method();
}
class Coffee implements Component {
  @Override
  public void method() {
    // TODO Auto-generado método de plantilla
    System.out.println("倒入咖啡");
  }
}
class Decorator implements Component {
  public Component comp;
  public Decorator(Component comp) {
    this.comp = comp;
  }
  @Override
  public void method() {
    // TODO Auto-generado método de plantilla
    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("Agregar chocolate");
  }
  public void method() {
    super.method();
    method1();
  }
}
public class TestDecoratePattern {
  public static void main(String[] args) {
    Componente comp = new Coffee();
    comp.method();
    System.out.println("--------------------------------------------------");
    Componente comp1 = new ConcreteDecorateA(comp);
    comp1.method();
    System.out.println("--------------------------------------------------");
    Componente comp2 = new ConcreteDecorateB(comp1);
    comp2.method();
    System.out.println("--------------------------------------------------");
    Componente comp3 = new ConcreteDecorateB(new ConcreteDecorateA(new Coffee()));
    comp3.method();
    System.out.println("--------------------------------------------------");
    Componente comp4 = new ConcreteDecorateA(new ConcreteDecorateB(new Coffee()));
    comp4.method();
  }
}

Resultados de ejecución:

Eso es todo el contenido de este artículo, espero que sea útil para su aprendizaje y que todos nos apoyen en el tutorial de clamor.

Declaración: el contenido de este artículo se obtiene de la red, es propiedad del autor original, el contenido se contribuye y sube por los usuarios de Internet por su propia cuenta. Este sitio no posee los derechos de propiedad, no se ha editado人工 y no asume responsabilidades legales relacionadas. Si encuentra contenido sospechoso de infracción de derechos de autor, le invitamos a enviar un correo electrónico a: notice#oldtoolbag.com (al enviar un correo electrónico, por favor reemplace # con @) para hacer una denuncia, y proporcione la evidencia relevante. Una vez que se verifique, este sitio eliminará inmediatamente el contenido sospechoso de infracción.

Te gustará