Decorador en Java
- Notas especiales sobre el patrón de diseño Decorator en Java
- Un ejemplo de un patrón de diseño de 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:
- 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.
- El patrón de diseño Decorator utiliza las clases abstractas o la interfaz.
- 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.
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