代理模式

原文网址:  https://www.cnblogs.com/V1haoge/p/6525527.html
代理模式很简单,只要记住以下关键点,简单易实现:

    (1)代理类与委托类实现同一接口

    (2)在委托类中实现功能,在代理类的方法中中引用委托类的同名方法

    (3)外部类调用委托类某个方法时,直接以接口指向代理类的实例,这正是代理的意义所在:屏蔽。

静态代理:在编译器就已经确定被代理的对象。
动态代理:在运行时,通过反射机制实现动态代理

1.待实现的接口

public interface ZiRanRen {
    public void quanli();
}

2.委托类

public class Reed implements ZiRanRen {
    public void eat(){
        System.out.println("今天吃满汉全席");
    }

    public void drink(){
        System.out.println("今天喝酸奶");
    }

    public void quanli() {
        System.out.println("我赋予我的代理律师来行使这些权利,此时代理律师全权代理我处理某些事务");
    }
}

3.代理类

public class LvShiProxy implements ZiRanRen {
    @Override
    public void quanli() {
        Reed reed = new Reed();
        reed.quanli();
    }
}

4.客户端测试类

public class Clienter {
    public static void main(String[] args) {
        ZiRanRen lvShiPrpxy = new LvShiProxy();
        lvShiPrpxy.quanli(); //我赋予我的代理律师来行使这些权利,此时代理律师全权代理我处理某些事务
    }
}

 

全部评论

相关推荐

杨柳哥:这不是普通人,那这个钱的是天才
点赞 评论 收藏
分享
10-11 17:30
湖南大学 C++
我已成为0offer的糕手:羡慕
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务