Heim  >  Artikel  >  Java  >  Fassen Sie JAVA-Decorator-Muster zusammen und organisieren Sie sie (detaillierte Beispiele).

Fassen Sie JAVA-Decorator-Muster zusammen und organisieren Sie sie (detaillierte Beispiele).

WBOY
WBOYnach vorne
2022-05-05 18:48:192329Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über Java, das hauptsächlich verwandte Themen zu Designmustern vorstellt. Er bezieht sich hauptsächlich auf den relevanten Inhalt des Dekoratormusters, der sich auf die dynamische Änderung der vorhandenen Objektstruktur bezieht, ohne sie zu ändern allen hilfreich sein.

Fassen Sie JAVA-Decorator-Muster zusammen und organisieren Sie sie (detaillierte Beispiele).

Empfohlenes Lernen: „Java-Video-Tutorial

Was ist das Dekoratormuster?

Definition des Dekoratormusters: Bezieht sich auf die dynamische Änderung der vorhandenen Objektstruktur, ohne sie zu ändern. Es handelt sich um ein Muster Dies fügt dem Objekt einige Verantwortlichkeiten hinzu (d. h. fügt seine zusätzlichen Funktionen hinzu. Es gehört zum Strukturmuster des Objekts.)

Vorteile

1. Dekoratoren sind eine leistungsstarke Ergänzung zur Vererbung und flexibler als die Vererbung. Sie können Funktionen dynamisch auf ein Objekt erweitern, ohne das ursprüngliche Objekt zu ändern. 2. Durch die Verwendung von And sind keine dekorativen Klassen erforderlich Durch die Anordnung und Kombination dieser Dekorationsklassen können verschiedene Effekte erzielt werden Programm.

Wissenspunkte

Normalerweise wird die Erweiterung der Funktionalität einer Klasse durch Vererbung implementiert. Allerdings weist die Vererbung statische Merkmale und einen hohen Grad an Kopplung auf, und mit zunehmender Erweiterung der Funktionen werden Unterklassen erweitert. Wenn Sie Kompositionsbeziehungen verwenden, um ein Wrapper-Objekt (d. h. ein Dekorationsobjekt) zu erstellen, um das reale Objekt zu umhüllen und ihm zusätzliche Funktionalität zu verleihen, während die Klassenstruktur des realen Objekts unverändert bleibt, ist dies das Ziel des Dekoratormusters. Lassen Sie uns die Grundstruktur und Implementierungsmethode analysieren.

Implementierung des Dekorationsmusters

Fall:
Hei Xiaohu fing die sieben Helden und röstete die Hongmao

Rolle der abstrakten Komponente (Komponente): Sieben Helden

Rolle der konkreten Komponente (Betonkomponente): Hongmao
Rolle des abstrakten Dekorators: Zutaten hinzufügen

Rolle des Betondekorateurs: Salz und Kreuzkümmel hinzufügen.

Die Qixia-Schnittstelle deklariert eine abstrakte Barbecue-Methode ist ein abstrakter Dekorateur implementiert die Qixia-Schnittstelle, deklariert ein Qixia-Attribut und wird zum Aufrufen der Qixia-Barbecue-Methode

public interface Qi {
    void show();}

Salz hinzufügen


Erbt die abstrakte Klasse und schreibt die Barbecue-Methode neu und fügt ein Salz hinzu

public class Hong implements Qi {

    @Override
    public void show() {
        System.out.println("烧烤一个虹猫");
    }}

Kümmel hinzufügen

Ich habe die abstrakte Klasse geerbt und die Grillmethode neu geschrieben, einen Kreuzkümmel

public class JiaLiao implements Qi {
    private Qi qi;

    JiaLiao() {
    }

    JiaLiao(Qi component) {
        this.qi = component;
    }

    @Override
    public void show() {
        qi.show();

    }}

Test

eine neue Regenbogenkatze hinzugefügt und sie gegrillt.
Fügen Sie etwas Salz hinzu.

Fügen Sie etwas Salz und Kreuzkümmel hinzu.

Und die Zugabe von Salz oder Kreuzkümmel ändert nichts an der ursprünglichen Fleischqualität von Hongmao.

Empfohlenes Lernen: „
Java-Video-Tutorial

Das obige ist der detaillierte Inhalt vonFassen Sie JAVA-Decorator-Muster zusammen und organisieren Sie sie (detaillierte Beispiele).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen