Softwaredesign: Beispiel: Proxy |
abstract
public
class Grafik {
abstract
public
void zeichne();
}
|
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
}
}
|
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();
}
}
|
Letzte Änderung: 13.04.2012 | © Prof. Dr. Uwe Schmidt |