Java中的代理

我们大家都知道微商代理,简单地说就是代替厂家卖商品,厂家“委托”代理为其销售商品。关于微商代理,首先我们从他们那里买东西时通常不知道背后的厂家究竟是谁,也就是说,“委托者”对我们来说是不可见的;其次,微商代理主要以朋友圈的人为目标客户,这就相当于为厂家做了一次对客户群体的“过滤”。我们把微商代理和厂家进一步抽象,前者可抽象为代理类,后者可抽象为委托类(被代理类)。通过使用代理,通常有两个优点,并且能够分别与我们提到的微商代理的两个特点对应起来
摘要由CSDN通过智能技术生成

一 什么是代理         

        我们大家都知道微商代理,简单地说就是代替厂家卖商品,厂家“委托”代理为其销售商品。关于微商代理,首先我们从他们那里买东西时通常不知道背后的厂家究竟是谁,也就是说,“委托者”对我们来说是不可见的;其次,微商代理主要以朋友圈的人为目标客户,这就相当于为厂家做了一次对客户群体的“过滤”。我们把微商代理和厂家进一步抽象,前者可抽象为代理类,后者可抽象为委托类(被代理类)。通过使用代理,通常有两个优点,并且能够分别与我们提到的微商代理的两个特点对应起来:
优点一:可以隐藏委托类的实现;

优点二:可以实现客户与委托类间的解耦,在不修改委托类代码的情况下能够做一些额外的处理。

        总结下来就是:目标对象类型的变量指向代理对象,调用方法的时候执行代理对象的方法。
代理对象的方法里面调用了目标对象的方法并在方法前后添加了一些功能。
 

二 静态代理

        若代理类在程序运行前就已经存在,那么这种代理方式被成为 静态代理 ,这种情况下的代理类通常都是我们在Java代码中定义的。 通常情况下, 静态代理中的代理类和委托类会实现同一接口或是派生自相同的父类。

        我们在这里举个例子:就是我们通过中介找房子。而中介就是个代理。下面按照这个例子然后进行代理的角色分型,已经在java中的实现。

代理的角色分配大致为一下四种:

  1. 抽象角色:一般使用接口和抽象类来实现。在上述例子中,就是定义一个Rent接口,用来租房子。
  2. 真实角色:被代理的角色。在上述例子中,就是房主要出租房子,在此定义一个Host类,实现Rent接口,然后行使租房子。
  3. 代理角色:代理真实角色做一些事情,然后会有一些附属操作。在上述例子中,中介在此定义一个Proxy类,实现Rent接口。就是中介代理房主租房子,然后再代理类中会有一个房主的实例,来行使租房子的行为,然后附属操作就是带房客看房子和收费等。
  4. 客户:使用代理角色的一些操作。在上述例子中,在此定义一个Client类,然后行使代理的一些操作,然后成功租下房子。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值