JDK动态代理总结

代理模式是指,为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在用户类和目标对象之间起到中介的作用。

代理对象是为了在不修改目标对象的基础上,增强主业务逻辑。

使用代理模式的作用:

功能增强:在原有的功能上,增加了额外的功能。新增的功能叫做功能增强

控制访问:在代理中,控制是否可以调用目标对象的方法

代理模式可以分为两组:静态代理和动态代理

静态代理

静态代理:代理类是手工实现的java文件,同时代理的目标对象是规定的

优点:容易理解,使用方便

缺点:在目标类比较多的时候,会产生大量的代理类;当接口改变是,会影响目标类

实现步骤:

定义业务接口

// 表示功能的,厂家,商家都要完成的功能
public interface UsbSell {

    //定义方法 参数 amount:表示一次购买的数量,暂时不用
    //返回值表示一个u盘的价格。
    float sell(int amount);

    //可以多个其它的方法
    //void print();
}

定义接口实现类


//目标类: 金士顿厂家, 不接受用户的单独购买。
public class UsbKingFactory implements UsbSell {
    @Override
    public float sell(int amount) {
        System.out.println("目标类中的方法调用 , UsbKingFactory 中的sell ");
        //一个128G的u盘是 85元。
        //后期根据amount ,可以实现不同的价格,例如10000个,单击是80, 50000个75
        return 85.0f;
    }
}

代理商

//taobao是一个商家,代理金士顿u盘的销售。
public class TaoBao implements UsbSell {

    //声明 商家代理的厂家具体是谁
    private UsbKingFactory factory = new UsbKingFactory();

    @Override
    //实现销售u盘功能
    public float sell(int amount) {

      
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值