定义
为其他对象提供一种代理以控制对这个对象的访问。
类图
代码
public class ProxyPattern {
public static void main(String[] args) {
new RealSubjectProxy().doWork();
}
}
interface Subject{
void doWork();
}
class RealSubject implements Subject{
@Override
public void doWork() {
}
}
// 注意;和装饰器模式有些类似,但是代理模式关注的是控制对象访问,装饰器模式关注的是方法增强
class RealSubjectProxy implements Subject{
private RealSubject subject;
public RealSubjectProxy(){
try {
this.subject = (RealSubject)this.getClass().getClassLoader().
loadClass("com.mxy.dp.RealSubject").newInstance();
}catch(Exception e){
e.printStackTrace();
}
}
public void connect(){
System.out.println("建立连接");
}
public void log(){
System.out.println("日志记录");
}
@Override
public void doWork() {
connect();
subject.doWork();
log();
}
}