Este ensaio apresenta principalmente a implementação de um simples padrão de design de decoradores usando Java:
Vamos primeiro olhar para o diagrama de aula do padrão de design do decorador:
Como pode ser visto na figura, podemos decorar qualquer classe de implementação da interface do componente, e essas classes de implementação também incluem o próprio decorador, que também pode ser decorado novamente.
Abaixo está um simples padrão de design de decoradores implementado em Java. Ele fornece um sistema de decorador que começa com a adição básica de café e pode continuar adicionando leite, chocolate e açúcar.
Componente de interface {void method ();} classe Coffee implementa o componente {@Override public void Method () {// TODO Method Auto-Generated Stub System.out.println ("Despejar café"); }} Classe Decorator implementa o componente {public Component Component; decorador público (componente comp) {this.comp = comp; } @Override public void Method () {// TODO Método Gerado Auto-Generado Stub Comp.Method (); }} classe concretedecoratea estende o decorador {public component comp; public concretedecoratea (componente comp) {super (comp); this.comp = comp; } public void method1 () {System.out.println ("despejar leite"); } public void method2 () {System.out.println ("Add Sugar"); } public void method () {super.method (); método1 (); método2 (); }} classe concretedecorateb estende o decorador {public component comp; public concretedecorateb (componente comp) {super (comp); this.comp = comp; } public void method1 () {System.out.println ("Adicione Chocolate"); } public void method () {super.method (); método1 (); }} classe pública testDecoratePattern {public static void main (string [] args) {componente comp = new Coffee (); comp.Method (); System.out.println ("--------------------------------------------------"); Componente comp1 = novo concretedecoratea (comp); comp1.method (); System.out.println ("--------------------------------------------------"); Componente comp2 = novo concretedecorateB (comp1); comp2.method (); System.out.println ("--------------------------------------------------"); Componente comp3 = new concretedecorateb (nova concretedecoratea (novo café ())); comp3.method (); System.out.println ("--------------------------------------------------"); Componente comp4 = novo concretedecoratea (novo concretedecorateb (novo café ())); comp4.method (); }} Resultados em execução:
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.