Heim > Java > javaLernprogramm > Hauptteil

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

WBOY
Freigeben: 2022-05-05 18:48:19
nach vorne
2407 Leute haben es durchsucht

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();}
Nach dem Login kopieren

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("烧烤一个虹猫");
    }}
Nach dem Login kopieren

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

    }}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage