关于Java动态代理
来源:互联网 发布:数据挖掘知乎 编辑:程序博客网 时间:2024/05/22 18:49
再来举个栗子
公司代理IPadMini转了一些钱,董事会Apple的产品挺靠谱,决定进一步把公司搞大,开一个Apple的专卖店
//所有苹果公司的产品(抽象主题角色)interface AppleProduction {public void theProduction();}
//加盟Apple专卖店(代理主题角色)class MyLeagueCompany implements InvocationHandler {private AppleProduction production;public MyLeagueCompany(AppleProduction production) {this.production = production;}public Object invoke(Object proxy, Method method, Object[] args)throws Throwable {//打印出该顾客对哪一款产品感兴趣System.out.println(production);System.out.println("method=" + method.getName());System.out.println("卖掉一台设备");//调用实际方法return method.invoke(production, args);}}
//测试public class DynamicProxyTest {/** * @param args */public static void main(String[] args) {AppleProduction fans1 = new MacFans();//所有代理类都扩展于Proxy类AppleProduction proxy1 = (AppleProduction) Proxy.newProxyInstance(MacFans.class.getClassLoader(),new Class[] { AppleProduction.class }, new MyLeagueCompany(fans1));proxy1.theProduction();AppleProduction fans2 = new IPadFans();AppleProduction proxy2 = (AppleProduction) Proxy.newProxyInstance(IPadFans.class.getClassLoader(),new Class[] { AppleProduction.class }, new MyLeagueCompany(fans2));proxy2.theProduction();}}
对于Apple的产品不同的人有不同的需求,他们都实现了AppleProduction接口,他们都想买苹果Apple的产品,所以就找到了Apple专卖店类MyLeagueCompany,专卖店类MyLeagueCompany要想得到卖所有产品的专卖权,就必须跟Apple总部签署合同(实现接口InvocationHandler),苹果公司规定每一样产品必须陈列出来让用户体验(实现接口InvocationHandler的invoke方法),只有用户体验到了才有可能掏自己的钱包。。。。。。
- 关于Java动态代理
- java--关于动态代理
- 关于java的动态代理
- 关于java基础--动态代理
- 关于java的动态代理
- 关于java动态代理模式
- 关于java中的动态代理
- 关于java 动态代理详细讲解
- Java 代理,动态代理
- 关于动态代理
- Spring 关于动态代理
- 关于动态代理模式
- 关于InvocationHandler动态代理
- 关于动态代理
- [Java] Java 动态代理
- java代理及动态代理
- java代理模式--动态代理
- Java静态代理、动态代理
- 我为你写下悲伤的文字:伤感心情随笔
- shelll 教程
- errno.h
- 十.Sql server中in的用法
- EZ-USB dscr.a51
- 关于Java动态代理
- 几个C头文件
- Java 缓冲区
- java_web 会话之Session技术
- 【备忘】stack和queue的常用参数
- 代码打开设置
- WSO2 ESB 学习(二) ---安装篇
- Android中使用HTTP服务
- 利用Jmail接收邮件,该如何处理