静态代理
public class StaticProxy {
public static void main(String[] args) {
// 实例化一个对象
// new 一个Web对象
new Web().WebVisit();// 不用代理
System.out.println("====================");
WebProxy webProxy = new WebProxy(new Web());// 使用代理
webProxy.WebVisit();
}
}
interface Visit{
// 接口中有一个WebVisit方法
void WebVisit();
};
class Web implements Visit{
// 浏览器
@Override
public void WebVisit() {
System.out.println("访问页面");
}
}
class WebProxy implements Visit{
// 浏览器代理
// 首先要有个代理的对象page
private Web page;
public WebProxy(Web page) {
this.page = page;
}
@Override
public void WebVisit() {
System.out.println("代理做的操作");
this.page.WebVisit(); // 真实操作
System.out.println("代理做的操作");
}
}
静态代理总结
- 真实对象和代理对象都实现同一个接口
- 代理对象要代理真实角色
- 好处:代理可以做好多其他的事,真实操作只需要关注自己的完成内容就好了。实现简单。
- 缺陷:不易维护,接口中功能增加,所有的代理都要改变。