Proxy

//Subject 定义RealSubject和Proxy的共同接口,这样可以在任何使用RealSubject的地方都可以用Proxy。
public abstract class Subject {

    public abstract void request();
    
}
//RealSubject 定义Proxy所代表的真实实体
public class RealSubject extends Subject{

    @Override
    public void request() {
        System.out.println("real do subject !");
    }
    
}
//Proxy RealSubject的代理,与RealSubject同一个接口,这样可以代替实体。
public class Proxy extends Subject {

    private RealSubject subject = new RealSubject();

    @Override
    public void request() {
        subject.request();
    }

}
public class Client {

    public static void main(String[] args) {
        Proxy proxy = new Proxy();
        proxy.request();
    }
    
}

打印结果:
real do subject !

代理模式:为其它对象提供了一种代理以控制这个对象的访问。

代理模式主要使用了 Java 的多态,干活的是被代理类,代理类主要是接活,你让我干活,好,我交给幕后的类去干,你满意就成,那怎么知道被代理类能不能干呢?同根就成,大家知根知底,你能做啥,我能做啥都清楚的很,同一个接口呗。

 

 

posted @ 2013-01-06 15:18  Kyle_Java  阅读(227)  评论(0编辑  收藏  举报