Jump to content

Talk:Proxy pattern

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 134.91.225.10 (talk) at 16:24, 18 September 2008 (Mistake in example?: new section). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
WikiProject iconComputing Unassessed
WikiProject iconThis article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
???This article has not yet received a rating on Wikipedia's content assessment scale.
???This article has not yet received a rating on the project's importance scale.
WikiProject iconComputer science Start‑class Mid‑importance
WikiProject iconThis article is within the scope of WikiProject Computer science, a collaborative effort to improve the coverage of Computer science related articles on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
StartThis article has been rated as Start-class on Wikipedia's content assessment scale.
MidThis article has been rated as Mid-importance on the project's importance scale.
Things you can help WikiProject Computer science with:

proxy

Isn't the Firewall proxy the same as Protection proxy? no91.186.200.21 12:51, 11 November 2007 (UTC)[reply]

ProxyImage code is overengineered

import java.util.*;
 
class RealImage {
    private String filename;
    private Image image;
 
    public RealImage(String filename) { this.filename = filename; }
    public void displayImage() {
        if (image == null) {
            loadImageFromDisk(); // load only on demand
        }
        // Display image code here.
    }

    private void loadImageFromDisk() {
        // Potentially expensive operation
        // ...
        // initializes image object
        System.out.println("Loading   "+filename);
    }
}
 
class ProxyExample {
    public static void main(String[] args) {
        RealImage image1 = new RealImage("HiRes_10MB_Photo1") );
        RealImage image2 = new RealImage("HiRes_10MB_Photo2") );

        image1.displayImage(); // loading necessary
        image2.displayImage(); // loading necessary
        image2.displayImage(); // no loading necessary; already done
        // the third image will never be loaded - time saved!
    }
}

The proxy pattern isn't needed at all!!! Diegofd (talk) 16:11, 16 May 2008 (UTC)[reply]

This edit seems a copyright violation from http://userpages.umbc.edu/~tarr/dp/lectures/Proxy.pdf (4/4/2004; 69 KB) the date of pdf is set before the edit Lusum (talk) 11:23, 11 June 2008 (UTC)[reply]

Mistake in example?

Current version:

class ProxyImage implements Image {
    private String filename;
    private Image image;
 
    public ProxyImage(String filename) { this.filename = filename; }
    public void displayImage() {
        if (image == null) {
            image = new RealImage(filename); // load only on demand
        }
        image.displayImage();
    }
}

Can interfaces such as "Image" be used as types?

Would this (still) be correct?

class ProxyImage implements Image {
    private String filename;
    private RealImage image;
 
    public ProxyImage(String filename) { this.filename = filename; }
    public void displayImage() {
        if (image == null) {
            image = new RealImage(filename); // load only on demand
        }
        image.displayImage();
    }
}

Notice the difference between private Image image; and private RealImage image;.

Thanks, Abdull under IP --134.91.225.10 (talk) 16:24, 18 September 2008 (UTC)[reply]