Heim > Java > javaLernprogramm > Hauptteil

So implementieren Sie das Proxy-Muster in Java-Entwurfsmustern

王林
Freigeben: 2023-05-13 18:34:06
nach vorne
914 Leute haben es durchsucht

Was ist das Proxy-Muster?

Definition des Proxy-Musters: Aus bestimmten Gründen ist es notwendig, einem Objekt einen Proxy bereitzustellen, um den Zugriff auf das Objekt zu steuern. Zu diesem Zeitpunkt ist das Zugriffsobjekt nicht geeignet oder kann nicht direkt auf das Zielobjekt verweisen, und das Proxy-Objekt fungiert als Vermittler zwischen dem Zugriffsobjekt und dem Zielobjekt.

Vorteile

1. Der Proxy-Modus spielt eine Vermittlerrolle zwischen dem Client und dem Zielobjekt

2 kann Die Trennung von Client und Zielobjekt verringert die Kopplung des Systems bis zu einem gewissen Grad und erhöht die Skalierbarkeit des Programms

Nachteile

1 Der Proxy-Modus erhöht die Anzahl der Klassen im Systemdesign

2 . Auf dem Client führt das Hinzufügen eines Proxy-Objekts zu einer Verlangsamung der Anforderungsverarbeitung

Wissenspunkte

Die Struktur des Proxy-Modus Relativ einfach, hauptsächlich durch Definieren eines geerbten abstrakten Themas. Der Agent enthält das reale Thema, um Zugriff auf das reale Thema zu erhalten. Lassen Sie uns seine Grundstruktur und Implementierungsmethode analysieren.

Implementierung des Proxy-Modus

Fall: Die Patin von Da Bendai verkauft Wein

Abstrakte Subjektklasse (Subjekt): Wein verkaufen

Echte Subjektklasse (Real Subject): Taverne der Patin

Proxyklasse (Proxy): Big Bens Weinstand

Ben kam, um vor der Taverne seiner Schwiegermutter einen Stand aufzubauen, um Wein zu verkaufen.

Wein verkaufen

Eine Weinverkaufsschnittstelle deklariert eine abstrakte Methode zum Verkauf von Wein Der Name wird deklariert und eine aa()-Methode fordert Da Ben auf, einen Stand einzurichten

public interface Jiu {
    void show();
}
Nach dem Login kopieren

Da Bens Weinstand

Da Bens Weinstandklasse implementiert die Weinverkaufsschnittstelle und deklariert den Namen des Weins und die Eigenschaften der Patin des Wirtshauses und die Art und Weise des Weinverkaufs werden umgesetzt.

public class GanNiang implements Jiu {
    private String name;
    GanNiang() {
    }
    GanNiang(String name) {
        this.name = name;
        aa();
    }
    @Override
    public void show() {
        System.out.printf("卖出一坛%s", name);
    }
    public void aa() {
        System.out.println("大奔来摆摊了");
    }
}
Nach dem Login kopieren

Test

new Bei einem großen Weinstand ist der zweimalige Aufruf der show()-Methode gleichbedeutend mit dem zweimaligen Verkauf von Wein.

public class DaBen implements Jiu {
    private String name;
    private GanNiang ganNiang;
    DaBen() {
    }
    DaBen(String name) {
        this.name = name;
    }
    @Override
    public void show() {
        if (ganNiang == null) {
            ganNiang = new GanNiang(name);
        }
        ganNiang.show();
    }
}
Nach dem Login kopieren

Hier können Sie sehen, dass die Ausgabeergebnisse beim ersten Weinverkauf und beim zweiten Weinverkauf unterschiedlich sind, denn jedes Mal, wenn Sie Wein verkaufen, müssen Sie zur Taverne Ihrer Patin gehen, um den Wein zu holen . Als Da Ben zum ersten Mal kam, um den Wein zu holen, teilte er seiner Patin mit, dass ich hier sei, um den Stand aufzubauen. Später wusste die Patin bereits, dass Da Ben kommen würde, sodass es nicht nötig war, ihn zu benachrichtigen, als er ankam wieder der Wein.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie das Proxy-Muster in Java-Entwurfsmustern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
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