Tuesday, 19 April 2016

Proxy pattern - Example


When loading a large image, you may create some light object to represent it until the image is loaded completely.
Usually a proxy object has the same methods as the object it represents.
Once the object is loaded, it passes on the actual object.

For example,
abstract class Graphic {
    public abstract void load();
    public abstract void draw();
    ...
}

class Image extends Graphic{
    public void load() {
        ...
    }
    public void draw() {
    ...
    }
}

class ImgProxy extends Graphic {
    public void load() {
    if(image == null) {
           image = new Image(filename);
    }   
    public void draw() {
     ...
    }
}

No comments:

Post a Comment

Note: only a member of this blog may post a comment.