Heim  >  Artikel  >  Java  >  Die Rolle des Proxy-Musters in Entwurfsmustern

Die Rolle des Proxy-Musters in Entwurfsmustern

零下一度
零下一度Original
2017-06-25 13:38:382322Durchsuche

1. Die Rolle des Proxy-Modus

Die Rolle des Proxy-Modus besteht darin, einen Proxy für andere Objekte bereitzustellen, um den Zugriff auf dieses Objekt zu steuern.

In manchen Fällen möchte oder kann ein Client nicht direkt auf ein anderes Objekt verweisen, und ein Proxy-Objekt kann als Vermittler zwischen dem Client und dem Zielobjekt fungieren.

2. Rollen, die im Allgemeinen am Proxy-Muster beteiligt sind

Abstrakte Rolle : Deklariert die gemeinsame Schnittstelle zwischen realen Objekten und Proxy-Objekten.

Proxy-Rolle: Die Proxy-Objektrolle enthält intern einen Verweis auf das reale Objekt, sodass das reale Objekt manipuliert werden kann. Gleichzeitig stellt das Proxy-Objekt dieselbe Schnittstelle bereit wie das reale Objekt, sodass es das reale Objekt jederzeit ersetzen kann. Gleichzeitig kann das Proxy-Objekt andere Operationen hinzufügen, wenn es Operationen am realen Objekt ausführt, was einer Kapselung des realen Objekts entspricht.

Echte Rolle: Das reale Objekt, das durch die Proxy-Rolle dargestellt wird, ist das Objekt, auf das wir letztendlich verweisen möchten.

Abbildung: Das folgende Programm verwendet einen statischen Proxy, um eine Funktion zur Konvertierung von Großbuchstaben zu implementieren.

Schnittstellenklasse ISomeService:

package com.ietree.basicskill.designpattern.staticproxy;/**
 * 接口类
 * 
 * @author Root */public interface ISomeService {
    
    String doFirst();    void doSecond();
}

Implementierungsklasse SomeServiceImpl:

package com.ietree.basicskill.designpattern.staticproxy;/**
 * 实现类
 * 
 * @author Root */public class SomeServiceImpl implements ISomeService {

    @Overridepublic String doFirst() {
        System.out.println("执行doFirst()...");
        String result = "abcde";return result;
    }

    @Overridepublic void doSecond() {
        System.out.println("执行doSecond()...");
    }

}

Proxy-Klasse SomeServiceProxy:

  SomeServiceProxy =

Testklasse Haupt:

package com.ietree.basicskill.designpattern.staticproxy;public class Main {public static void main(String[] args) {        ISomeService service = new SomeServiceProxy();String result = service.doFirst();
        System.out.println(result);
        
        service.doSecond();
    }
}

3. Wenn Sie der oben genannten Methode folgen möchten ( Wenn Sie einen statischen Proxy verwenden, der das Proxy-Muster verwendet, muss die tatsächliche Rolle bereits und als interne Eigenschaft des Proxy-Objekts implementiert sein.

Aber im tatsächlichen Gebrauch muss eine reale Rolle einer Proxy-Rolle entsprechen, aber wenn sie in großen Mengen verwendet wird, führt dies zusätzlich zu einer starken Erweiterung der Klasse, wenn die reale Rolle nicht bekannt ist Vorab, wie verwende ich den Proxy? Dieses Problem kann durch

Java

s dynamische Proxy-Klasse gelöst werden.

Das obige ist der detaillierte Inhalt vonDie Rolle des Proxy-Musters in Entwurfsmustern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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