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.
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
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.
Fall: Die Patin von Da Bendai verkauft Wein
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(); }
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("大奔来摆摊了"); } }
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(); } }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!