代理模式是结构型模式中的一种相对简单的设计模式。代理模式是隔绝目标对象和访问对象的,使之没有直接访问关系。
使用代理模式的原因由两个:一个是保护目标对象,一个是增强目标对象。
其UML图如下:
代码如下:
// 代理模式由抽象主题、具体主题和代理类组成
// 抽象主题
interface Subject {
void Request();
}
// 具体主题
class RealSubject implements Subject {
public void Request() {
System.out.println("访问真实主题方法...");
}
}
// 代理
class Proxy implements Subject() {
private RealSubject realSubject = new RealSubject();
public void Request() {
preRequest();
realSubject.Request();
postRequest();
}
public void preRequest() {
System.out.println("访问真实主题之前的预处理");
}
public void postRequest() {
System.out.println("访问真实主题后的后续处理");
}
}
// 客户类
public class Client {
public static void main(String[] args) {
Proxy proxy = new Proxy();
proxy.show();
}
}