Proxy


Definition

Use a simple object to represent a complex one or provide a placeholder for another object to control access to it.

Where to use & benefits

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() {
	 ...
    }
	...
}

Return to top