【狂神说Java】静态代理

静态代理

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("代理做的操作");
    }
}

静态代理总结

  • 真实对象和代理对象都实现同一个接口
  • 代理对象要代理真实角色
  • 好处:代理可以做好多其他的事,真实操作只需要关注自己的完成内容就好了。实现简单。
  • 缺陷:不易维护,接口中功能增加,所有的代理都要改变。
posted @ 2021-09-15 16:01  Jie7  阅读(69)  评论(0)    收藏  举报