一、UML类图
二、代码示例
public class Client {
public static void main(String[] args) {
RealSubject realSubject = new RealSubject();
Proxy proxy = new Proxy(realSubject);
proxy.operation();
}
}
public class Proxy implements Subject{
private RealSubject realSubject = null;
public Proxy(RealSubject realSubject) {
this.realSubject = realSubject;
}
@Override
public void operation() {
this.realSubject.operation();
}
}
public interface Subject {
void operation();
}
public class RealSubject implements Subject{
@Override
public void operation() { }
}
三、角色介绍
- Client(客户端):
客户端角色,程序的调用者。 - Proxy(代理人):
该角色实现了Subject角色中定义的方法,负责处理来自客户端的请求,将处理不了的请求交给RealSubject角色处理。 - Subject(主体):
该角色定义了使Proxy角色和RealSubject角色具有一致性的接口。 - RealSubject(实际的主体):
该角色实现了Subject角色中定义的接口,负责处理Proxy角色无法处理的请求。