设计模式就是将我们生活中的某些处理方式抽象到代码中,今天和大家分享一个常见的设计模式:代理模式
1 基础知识
2 简单例子
1)Subject类:定义了RealSubject和Proxy的共用接口,这样就可以在任何使用RealSubject的地方使用Proxy
package com.szh.pattern;
public abstract class Subject {
public abstract void Request();
}
2)RealSubject类:定义了Proxy所代表的的真实实体
package com.szh.pattern;
public class RealSubject extends Subject {
@Override
public void Request() {
// TODO Auto-generated method stub
System.out.print("真实的请求");
}
}
3)Proxy类:保存一个引用使得代理可以访问实体,并提供一个与Subject的接口相同的接口,这样代理就可以用来替代实体
package com.szh.pattern;
public class Proxy extends Subject {
RealSubject realSubject;
@Override
public void Request() {
// TODO Auto-generated method stub
if(realSubject==null){
realSubject = new RealSubject();
}
realSubject.Request();
}
}
4)Demo
package com.szh.pattern;
public class Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Proxy proxy = new Proxy();
proxy.Request();
}
}