homeSoftwaredesign Softwaredesign: Beispiel: Proxy Prof. Dr. Uwe Schmidt FH Wedel

Beispiel: Proxy

weiter

weiter

die Schnittstelle: Grafik

abstract
public
class Grafik {
 
  abstract
  public
  void zeichne();
 
}
weiter

weiter

die Klasse: Bild

public
class Bild extends Grafik {
 
  public static class Bitmap { }
 
  protected
  Bitmap bm;
 
  public
  Bild(String quelle) {
    bm = new Bitmap();
    // ... bitmap aus quelle laden
    // ... teure Operation
  }
 
  public
  void zeichne() {
    // ... bitmap ausgeben
  }
}
 
weiter

weiter

die Proxy-Klasse: Bildproxy

public
class BildProxy extends Grafik {
 
  protected
  String quelle;
 
  protected
  Grafik bild;
 
  public
  BildProxy(String quelle) {
    this.quelle = quelle;
    // noch kein Bild laden
    // schnell
  }
 
  protected
  void lade() {
    if ( bild == null ) {
      // teure Operation erst hier
      bild = new Bild(quelle);
    }
  }
 
  public
  void zeichne() {
    lade();
    bild.zeichne();
  }
}
weiter

Letzte Änderung: 13.04.2012
© Prof. Dr. Uwe Schmidt
Prof. Dr. Uwe Schmidt FH Wedel