Este ensayo presenta principalmente la implementación de un patrón de diseño decorador simple usando Java:
Primero veamos el diagrama de clases del patrón de diseño del decorador:
Como se puede ver en la figura, podemos decorar cualquier clase de implementación de la interfaz de componentes, y estas clases de implementación también incluyen el decorador en sí, que también se puede decorar nuevamente.
A continuación se muestra un patrón de diseño decorador simple implementado en Java. Proporciona un sistema decorador que comienza con la adición básica de café y puede continuar agregando leche, chocolate y azúcar.
Componente de interfaz {void Method ();} Coffee Coffee Implements Component {@Override public void Method () {// TODO Auto Generated Method stub System.out.println ("vertido en café"); }} El decorador de clase implementa el componente {Public Component Comp; decorador público (componente comp) {this.comp = comp; } @Override public void Method () {// TODO Auto Generado Método STUB comp.method (); }} La clase Concretedecoratea extiende el decorador {Public Component Comp; public Concretedecoratea (componente comp) {super (comp); this.comp = comp; } public void Method1 () {System.out.println ("Vierta en leche"); } public void Method2 () {System.out.println ("Agregar azúcar"); } Public void Method () {super.method (); método1 (); método2 (); }} La clase ConcretedEcateB extiende Decorator {Public Component Comp; public ConcretedecorateB (componente comp) {super (comp); this.comp = comp; } public void Method1 () {System.out.println ("Agregar chocolate"); } Public void Method () {super.method (); método1 (); }} Public Class TestDecoratePather {public static void main (string [] args) {componente comp = new Coffee (); comp.method (); System.out.println ("--------------------------------------------------"); Componente comp1 = nuevo Concretedecoratea (comp); comp1.method (); System.out.println ("--------------------------------------------------"); Componente comp2 = new ConcretedecorateB (comp1); comp2.method (); System.out.println ("--------------------------------------------------"); Componente comp3 = new ConcretedecorateB (nuevo Concretedecoratea (nuevo café ()))); comp3.method (); System.out.println ("--------------------------------------------------"); Componente comp4 = new Concretedecoratea (nuevo ConcretedecorateB (nuevo café ()))); comp4.method (); }} Resultados de ejecución:
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.