设计模式:代理模式
什么是代理模式
代理模式:给某个对象提供一个代理,由代理控制对原对象的访问。
代理模式的结构
一个代理模式实例
有一个对象(Subject)有一个公开的操作(request),可以无限制地使用它。现在想改造这个对象,只能够让通过验证的人有次数地使用它。在不改变原对象(RealSubject)情况下,使用(Proxy)来实现这个功能。
实例代码
Subject
public abstract class Subject {
public abstract void request();
}
RealSubject
public class RealSubject extends Subject {
@Override
public void request() {
System.out.println("RealSubject request.");
}
}
Proxy
public class Proxy extends Subject {
private RealSubject subject;
public Proxy() {
this.subject = new RealSubject();
}
@Override
public void request() {
validate();
subject.request();
}
private void validate(){
System.out.println("validate ...");
}
}
Client
public class Client {
public static void main(String[] args){
Subject subject = new Proxy();
subject.request();
}
}
输出结果
validate ...
RealSubject request.
(完)