Dekorateur in Java

MD Aminul Islam 12 Oktober 2023
  1. Besondere Hinweise zum Decorator-Entwurfsmuster in Java
  2. Ein Beispiel für ein Decorator-Entwurfsmuster in Java
Dekorateur in Java

Das Decorator-Entwurfsmuster ermöglicht es Benutzern, Funktionalität dynamisch hinzuzufügen und das Verhalten von Objekten festzulegen, ohne das Verhalten ihrer Objekte zu beeinflussen. Um das Verhalten der Klasse zu erweitern, verwendet der Dekorateur meistens Vererbung.

In diesem Artikel besprechen wir das Decorator-Entwurfsmuster in Java. Außerdem werden wir das Thema mit Hilfe von Beispielen und Erklärungen behandeln, um das Thema einfacher zu machen.

Besondere Hinweise zum Decorator-Entwurfsmuster in Java

Nachfolgend einige wichtige Hinweise zum Decorator-Designmuster:

  1. Durch das Decorator-Entwurfsmuster können Sie einem Objekt einer Klasse Funktionalität hinzufügen, ohne Änderungen an der tatsächlichen Struktur der Klasse vorzunehmen.
  2. Das Decorator-Entwurfsmuster verwendet die abstrakten Klassen oder Schnittstellen.
  3. Einer der Nachteile des Decorator-Entwurfsmusters besteht darin, dass es mehrere ähnliche Objekte verwendet.

Ein Beispiel für ein Decorator-Entwurfsmuster in Java

Unten haben wir ein Beispiel für das Decorator-Designmuster geteilt. Sehen Sie sich zunächst die Struktur an, die wir implementieren werden:

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

Schauen Sie sich den folgenden Code an, in dem wir die obige Struktur implementieren:

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();
  }
}

Wir haben den Zweck jeder Linie befohlen. Nachdem Sie den Beispielcode ausgeführt haben, sehen Sie die folgende Ausgabe:

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

Bitte beachten Sie, dass die in diesem Artikel geteilten Beispielcodes in Java sind und Sie Java in Ihrer Umgebung installieren müssen, wenn Ihr System nicht über Java verfügt.

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