Proxy Pattern - Verständnisfrage

mhamp

Mitglied
Hallo zusammen!

Ich setze mich zur Zeit etwas mit dem Proxy-Pattern auseinander...

Nun habe ich ein kleines Beispiel, allerdings weiss ich nicht genau ob ich damit wirklich das Proxy-Pattern benutze und ob ich es 100% verstanden habe!

Das Beispiel in Worten:
Das Programm soll Bilder anzeigen, diese sind in einem hochauflösenden Format vorhanden, dadurch dauert das laden ziemlich lange (im Beispiel durch Thread.sleep() simuliert).

Jetzt habe ich ein Interface Graphic, eine ImageProxy-Klasse und das "echte" Image.

Graphic.java
Java:
public interface Graphic
{
    public void showImage();
}

ImageProxy.java
Java:
public class ImageProxy implements Graphic
{
    private String imagePath;
    private Image myImage = null;

    public ImageProxy(String imagePath)
    {
        this.imagePath = imagePath;
    }

    @Override
    public void showImage()
    {
        if(this.myImage == null)
        {
            System.out.println("ImageProxy: Erzeuge echtes Image...");
            this.myImage = new Image(this.imagePath);
        }

        System.out.println("ImageProxy: Bild wird angezeigt...");

        this.myImage.showImage();
    }
}

Image.java
Java:
public class Image implements Graphic
{

    public Image(String imagePath)
    {
        this.loadImage(imagePath);
        System.out.println("Image: Objekt wurde erzeugt...");
    }

    private void loadImage(String imagePath)
    {
        // Lade das Bild
        // Dauer 3 Sekunden
        try
        {
            Thread.sleep(3000);
        }
        catch(Exception ex)
        {
            System.out.println(ex.getMessage());
        }

        System.out.println("Image: Bild wurde geladen... (3 Sekunden)");
    }

    @Override
    public void showImage()
    {
        // Anzeigen des Bildes
        // Dauer 2 Sekunden
        try
        {
            Thread.sleep(2000);
        }
        catch(Exception ex)
        {
            System.out.println(ex.getMessage());
        }

        System.out.println("Image: Bild wurde angezeigt... (2 Sekunden)");
    }
}


Ich erstelle nun drei ImageProxy-Objekte.
Die Objekte sind nun im Speicher vorhanden, die Bilder allerdings noch nicht geladen bzw. angezeigt.

Wenn ich das Bild nun laden möchte, dauert es einmal 3 Sekunden zum laden des Bildes und danach 2 Sekunden zum anzeigen. Also insgesamt 5 Sekunden.


Benutze ich jetzt allerdings nicht das ImageProxy sondern die Image-Klasse.
Dauert es bereits beim anlegen der Objekte 3 Sekunden und beim anzeigen nochmal 2 Sekunden.


Liegt der Vorteil des Proxy-Pattern nun darin, das ich die Objekte bereits angelegt habe allerdings die besonders zeitintensiven Methoden des Objekt anlegens und Bild anzeigen erst ausführe, wenn der Benutzer wirklich auf die Bilder zugreifen möchte?
 
J

JohannisderKaeufer

Gast
Liegt der Vorteil des Proxy-Pattern nun darin, das ich die Objekte bereits angelegt habe allerdings die besonders zeitintensiven Methoden des Objekt anlegens und Bild anzeigen erst ausführe, wenn der Benutzer wirklich auf die Bilder zugreifen möchte?

Nein, du kannst in deiner Image-Klasse das loadImage auch erst in der Methode showImage aufrufen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Haskell pattern matching in if else Anweisung umschreiben Softwareentwicklung 3
E Frage zu Dekorator-Pattern Softwareentwicklung 2
M Visito/Besucher Design-Pattern/Strukturmuster Softwareentwicklung 4
H2SO3- design pattern: code in model classes Softwareentwicklung 5
G Design Pattern gesucht! Softwareentwicklung 4
D Design Pattern Softwareentwicklung 6
slawaweis Factory-Builder Pattern? Softwareentwicklung 6
B konfigurierbare Objekte - Singelton und Factory Pattern Softwareentwicklung 3
C Flyweight-Pattern verhält sich unerwartet Softwareentwicklung 5
S Design Pattern für zwei abhängige Klassen Softwareentwicklung 8
U Decorator Pattern in der Java API Softwareentwicklung 6
0 Unklarheiten beim State Pattern Softwareentwicklung 2
N Composite pattern Softwareentwicklung 2
N Pattern Softwareentwicklung 2
L Builder Pattern Softwareentwicklung 6
1 Factory-Pattern: Bitte um Tipps zur Anwendung Softwareentwicklung 3
L Pattern Softwareentwicklung 3
J DAO Pattern bei komplexen Datenbankzugriffen Softwareentwicklung 2
M IllegalStateException - Problem mit GUI und Observer pattern Softwareentwicklung 4
G Pattern für Datenbank Anwendung Softwareentwicklung 22
A Iterato-Pattern und Innere Klassen Softwareentwicklung 9
F Unterschied Command und Strategy pattern Softwareentwicklung 4
F Wann Observer Pattern nehmen und Vorteile davon? Softwareentwicklung 5
H Frage ueber Prototype Pattern? Softwareentwicklung 2
K Design Pattern für einen simple Rechenmaschine Softwareentwicklung 18
G Warum/Wann mehrere Modells beim MVC-Pattern verwenden ? Softwareentwicklung 7
timomeinen DAO Pattern - Relationen mit DTO abbilden Softwareentwicklung 9
D Singleton pattern Softwareentwicklung 19
M decoration pattern Softwareentwicklung 2
T MVC Verständnisfrage (mehrere Views) Softwareentwicklung 6

Ähnliche Java Themen

Neue Themen


Oben