1. Patrón del decorador
Permite una nueva funcionalidad a un objeto existente sin cambiar su estructura. Este tipo de patrón de diseño pertenece al patrón estructural, que es un paquete de clases existentes.
Este patrón crea una clase decorativa para envolver la clase original y proporciona funcionalidad adicional mientras mantiene la integridad de la firma del método de clase.
Demostramos el uso del modo decorador a través del siguiente ejemplo. Entre ellos, decoraremos una forma con diferentes colores sin cambiar la clase de forma.
2. Realización
Crearemos una interfaz de forma y una clase de entidad que implementa la interfaz de forma. Luego creamos un Ejecorador de forma decorativa abstracta que implementa la interfaz de forma y usamos el objeto de forma como su variable de instancia.
RedShapedEcorator es una clase de entidad que implementa la forma formedecoradora.
DecoratorPatterndemo, nuestra clase de demostración utiliza Redshapedecorator para decorar objetos de forma.
Paso 1
Crear una interfaz.
Forma.java
forma de interfaz pública {void draw ();} Paso 2
Crea una clase de entidad que implementa la interfaz.
Rectángulo.java
Public Class Rectangle implementa la forma {@Override public void Draw () {System.out.println ("Shape: Rectangle"); }}Círculo.java
Public Class Circle implementa la forma {@Override public void draw () {System.out.println ("Shape: Circle"); }} Paso 3
Cree una clase decorativa abstracta que implique la interfaz de forma.
Formedecorator.java
Public Abstract Class ShapedEcorator implementa forma {forma de forma protegida decorada; Public Formedecorator (forma decoratedShape) {this.decoratedShape = decoredShape; } public void draw () {decoratedShape.draw (); }} Paso 4
Crea una clase decorativa de entidad que se extiende desde la clase Formedecorator.
Redshapedecorator.java
Public Class RedShapedecorator extiende Formedecorator {public RedShapedecorator (Shape DecoredShape) {Super (DecoredShape); } @Override public void dibujo () {decoratedShape.draw (); SetredBorder (decorado); } private void setredBorder (forma decoratedShape) {System.out.println ("Border Color: Red"); }} Paso 5
Use RedShapedecorator para decorar objetos de forma.
DecoratorPatterndemo.java
clase pública decoratorSpatternDemo {public static void main (string [] args) {shap circle = new Circle (); Shape RedCircle = new RedShapedecorator (nuevo círculo ()); Forma redrectangle = new RedShapedecorator (nuevo rectángulo ()); System.out.println ("Círculo con borde normal"); circle.draw (); System.out.println ("/ncircle of Red Border"); RedCircle.Draw (); System.out.println ("/nrectangle of rojo border"); redrectangle.draw (); }} Paso 6
Verifique la salida.
Círculo con Bordershape normal: Circlecircle of Red Bordershape: Circleforder Color: Redrectangle of Red Bordershape: RectangleBorder Color: Rojo
Espero que este artículo sea útil para que todos aprendan la programación de Java.