Heim > Java > javaLernprogramm > Lernen im Java-Proxy-Modus

Lernen im Java-Proxy-Modus

黄舟
Freigeben: 2017-10-13 10:31:53
Original
1031 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich die relevanten Informationen zum Proxy-Modus beim Lernen von Java-Entwurfsmustern ausführlich vorgestellt. Interessierte Freunde können sich auf

Proxy-Modus (Proxy) beziehen: Stellt einen Proxy für andere Objekte bereit um den Zugriff auf dieses Objekt zu steuern.

Strukturdiagramm des Agenturmodus

Simulationsanforderungen: Xiao Zhang aus Klasse 3 mag Xiao Hong aus Klasse 1, kennt Xiao Hong aber nicht, also er beauftragt Xiao Ming aus der 1. Klasse, ihm das kleine rote Geschenk zu geben.

1: Erstellen Sie eine Schnittstelle, die sowohl Xiao Zhang als auch Xiao Ming implementieren können.


package ProxyModel;

/**
 * 总的接口
 * @author 我不是张英俊
 *
 */
interface ISendGift {

  void GiveDolls();
  void GiveFlowers();
  void GiveChocolate();
}
Nach dem Login kopieren

2: Erlauben Sie Xiao Zhang, Geschenke zu senden.


package ProxyModel;

/**
 * 
 * 小张是送鲜花的本体,送其实是小张送的,小明只是借助小张的送的鲜花去给小红
 * @author 我不是张英俊
 *
 */
public class Pursuit implements ISendGift{

  String mm;
  public Pursuit(String mm){
    this.mm=mm;
  }
  @Override
  public void GiveDolls() {
    // TODO Auto-generated method stub
    System.out.println("送"+mm+"洋娃娃");
  }

  @Override
  public void GiveFlowers() {
    // TODO Auto-generated method stub
    System.out.println("送"+mm+"鲜花");
  }

  @Override
  public void GiveChocolate() {
    // TODO Auto-generated method stub
    System.out.println("送"+mm+"巧克力");
  }

}
Nach dem Login kopieren

3: Verwirklichen Sie das von Xiao Ming über Xiao Zhang gesendete Geschenk und übertragen Sie es an Xiao Hong.


package ProxyModel;

/**
 * 小明转送小红礼物的完成方法,其实是借助小张送的礼物来完成的,此处小明即为代理
 * @author 我不是张英俊
 *
 */
public class Proxy implements ISendGift{

  Pursuit gg;
  public Proxy(String mm){
    gg=new Pursuit(mm);
  }
  
  @Override
  public void GiveDolls() {
    // TODO Auto-generated method stub
    gg.GiveDolls();
  }

  @Override
  public void GiveFlowers() {
    // TODO Auto-generated method stub
    gg.GiveFlowers();
  }

  @Override
  public void GiveChocolate() {
    // TODO Auto-generated method stub
    gg.GiveChocolate();
  }

}
Nach dem Login kopieren

4: Testklasse:


package ProxyModel;

/**
 * 需求,3班小张喜欢1班小红,但是不认识小红,委托1班小明给小红送东西
 * 总结:小张送小红礼物,小张送,然后小明通过小张接过送的礼物,给小红,
 * 其实小明是借助小张送的礼物,来代理完成送礼物的操作。
 * 代理模式
 * @author 我不是张英俊
 *
 */
public class test {

  public static void main(String[] args) {
    String mm="小红";
    Proxy xiaoming=new Proxy(mm);
    xiaoming.GiveDolls();
    xiaoming.GiveFlowers();
    xiaoming.GiveChocolate();

  }

}
Nach dem Login kopieren

5: Konsole

Schicken Sie eine kleine rote Puppe
Senden Sie eine kleine rote Blume
Senden Sie eine kleine rote Schokolade

Zusammenfassung:

Anwendungsszenarien für den Proxy-Modus

1 : Remote-Proxy, d. h. Bereitstellung lokaler Darstellungen eines Objekts in verschiedenen Adressräumen. Dies verbirgt die Tatsache, dass ein Objekt in einem anderen Adressraum existiert.

2: Virtuelle Agenten sind teure Objekte, die nach Bedarf erstellt werden müssen. Verwenden Sie es, um reale Objekte zu speichern, deren Instanziierung lange dauert.

3: Sicherheits-Proxy, der zur Steuerung von Berechtigungen beim Zugriff auf reale Objekte verwendet wird.

4: Intelligente Führung bedeutet, dass der Agent andere Dinge erledigt, wenn das reale Objekt aufgerufen wird.

Vorteile:

1: Der Proxy-Modus kann den Anrufer und den Angerufenen koordinieren, wodurch die Kopplung des Systems bis zu einem gewissen Grad reduziert wird.

2: Das Proxy-Objekt kann be Es fungiert als Vermittler zwischen dem Client und dem Zielobjekt und schützt so das Zielobjekt.

Nachteile:

1: Aufgrund der Hinzufügung eines Proxy-Objekts zwischen dem Client und dem realen Objekt kann es bei einigen Arten von Proxy-Modi zu einer Verlangsamung der Anforderungsverarbeitungsgeschwindigkeit kommen

2: Die Implementierung von Proxy-Mustern erfordert zusätzliche Arbeit und die Implementierung einiger Proxy-Muster ist sehr komplex.

Das obige ist der detaillierte Inhalt vonLernen im Java-Proxy-Modus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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