Decorador en Java

MD Aminul Islam 12 octubre 2023
  1. Notas especiales sobre el patrón de diseño Decorator en Java
  2. Un ejemplo de un patrón de diseño de decorador en Java
Decorador en Java

El patrón de diseño Decorator permite a los usuarios agregar funcionalidad dinámicamente y establecer el comportamiento de los objetos sin afectar el comportamiento de sus objetos. Para ampliar el comportamiento de la clase, el decorador utiliza principalmente la herencia.

En este artículo, discutiremos el patrón de diseño Decorator en Java. Además, vamos a cubrir el tema con la ayuda de ejemplos y explicaciones para facilitar el tema.

Notas especiales sobre el patrón de diseño Decorator en Java

A continuación, se comparten algunas notas importantes sobre el patrón de diseño Decorator:

  1. A través del patrón de diseño Decorator, puede agregar funcionalidad a un objeto de una clase sin realizar ningún cambio en la estructura real de la clase.
  2. El patrón de diseño Decorator utiliza las clases abstractas o la interfaz.
  3. Una de las desventajas del patrón de diseño Decorador es que utiliza varios objetos similares.

Un ejemplo de un patrón de diseño de decorador en Java

A continuación, compartimos un ejemplo sobre el patrón de diseño Decorador. Primero, veamos la estructura que vamos a implementar:

Draw
|----- Circle
|      |------ Blue Circle
|      |------ Yellow Circle
|
|----- Rectangle

Eche un vistazo al siguiente código donde implementamos la estructura anterior:

interface draw { // An draw interface
  void draw();
}

class Circle implements draw { // The circle class implements the interface draw
  @Override
  public void draw() {
    System.out.println("This is a circle");
  }
}

class Rectangle implements draw { // The rectangle class implements the interface draw

  @Override public void draw() { // Overriding the method for drawing rectangle
    System.out.println("This is a Rectangle");
  }
}

class ColoredCircle extends Circle { // The ColoredCircle class extents Circle
  String color;

  @Override public void draw() { // Overriding the method for drawing circle with color
    System.out.println("This is a " + color + " circle");
  }
}

// Our main controlling class
class JavaDecorator {
  public static void main(String[] args) {
    Rectangle rect = new Rectangle();
    Circle cr = new Circle();
    ColoredCircle colorCircle = new ColoredCircle();

    rect.draw();
    cr.draw();

    colorCircle.color = "Blue";
    colorCircle.draw();
    colorCircle.color = "Yellow";
    colorCircle.draw();
  }
}

Hemos ordenado el propósito de cada línea. Ahora, después de ejecutar el código de ejemplo, verá el siguiente resultado:

This is a Rectangle
This is a circle
This is a Blue circle
This is a Yellow circle

Tenga en cuenta que los códigos de ejemplo compartidos en este artículo están en Java y debe instalar Java en su entorno si su sistema no tiene Java.

MD Aminul Islam avatar MD Aminul Islam avatar

Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.

LinkedIn