Proxy pattern

    技术2022-05-11  145

    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

    If creating an object is too expensive in time or memory. Postpone the creation until you need the actual object. Load a large image (time consuming). Load a remote object over network during peak periods. Access right is required to a complex system.

    Related patterns include

    Adapter pattern, which provides a different interface to the object it adapts, whereas a proxy provides the same interface as its subject, and Decorator pattern, which focuses on adding new functions to an object, whereas a proxy controls access to the object.

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

    最新回复(0)