Object Dynamic proxies (一) 对象动态代理

new Manufacturer():比如说,生产商生产瓷砖这个对象,自己不对外卖,让代理商去卖瓷砖。


生产瓷砖的人:生产商

代理瓷砖的人:代理商

下面主要:1、定义一个接口(做的事情,可以卖瓷砖这件事)

                2、 生产商 这个对象 实现 接口

                3、代理商  实现 接口

       生产商只管生产,只好找多个代理商来卖瓷砖,

       简单的很,直接把生产商的对象传给代理商就行了,

      当代理商执行操作时,利用多态原理,其实就是生产商在操作。

package ftypeinfo;

import static net.mindview.util.Print.*;

interface InterfaceSell{
void doSell();
void somethingElse(String arg);
}

class manufacturer  implements InterfaceSell{
@Override
public void doSell() {
// TODO Auto-generated method stub
print("do something");
}


@Override
public void somethingElse(String arg) {
// TODO Auto-generated method stub
print("somethingElse"+arg);
}
}
 class SellProxy implements InterfaceSell{
  private InterfaceSell proxied;// 传入了真正的实例
  public SellProxy(InterfaceSell proxied)
  {this.proxied=proxied;}
  
@Override
public void doSell() {
// TODO Auto-generated method stub
print("SimpleProxyDemo doSometing");
proxied.doSell();
}
@Override
public void somethingElse(String arg) {
// TODO Auto-generated method stub
print("SimpleProxyDemo doSometing"+arg);
proxied.somethingElse(arg);
}
 }
 public class SimpleProxyDemo
  {  
public static void cosumer(InterfaceSell iface)
{
iface.doSell();
iface.somethingElse("bonobo");
}    
public static void main(String[] args) {
// TODO Auto-generated method stub
cosumer(new manufacturer());
cosumer(new SellProxy(new manufacturer()));
}
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值