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