Windows资源浏览器——动态代理(java)

本文通过Windows资源浏览器的示例,解释了动态代理的概念和作用。动态代理在运行时生成字节码,实现了对多个接口的代理,简化了编程并提高了软件扩展性。文中详细阐述了Proxy类和InvocationHandler接口的角色,以及动态代理类的生成过程,强调了动态代理在减少编码和维护工作量上的优势。
摘要由CSDN通过智能技术生成

      写这篇博客是为了解决《Dota兄订餐——静态代理(java)》 里最终的遗留问题。

      想必大家都或多或少了解一些Dos命令,在调用外部程序时,经常会用到dos命令来完成。其中有一条万能的命令,就是用Explorer.exe来打开任意程序,就相当于直接双击该程序。


       先给大家看一下我们要调用的外部资源,放到一个文件夹中,包括图片、音乐、视频、文本文档、word文档、还有其他文档,最后还会加上一个网址。


       我把Dos命令写入到一个bat中,也放入同一个文件夹中,命令如下:

@echo off

rem 调用默认程序打开图片
explorer 1.jpg

rem 调用默认程序打开pdf
explorer 42种方法全面提升宝宝的智能.pdf

rem 调用默认程序打开快捷方式
explorer SSH视频.lnk

rem 调用默认程序打开文本文档
explorer X光下看腾讯.txt

rem 调用默认程序打开chm
explorer 电脑故障维修大全.chm

rem 调用默认程序打开mp4
explorer 黄梅戏女驸马谁料皇榜中状元选段.mp4

rem 调用默认程序打开flv
explorer 马云创业演讲.flv

rem 调用默认程序打开音乐
explorer 我会很诚实.mp3

rem 调用默认程序打开Word文档
explorer 验收标准V3.1.docx

rem 调用默认浏览器打开百度
explorer http://www.baidu.com

       现在我们双击这个bat文件,系统会自动调用相对应的默认程序去打开相应的文件。

 


      在上面的例子中,每种格式的文件都对应一种默认的打开程序。而且这个默认程序是可以手动更换的。而Explorer就相当于这里面的动态代理。我们把具体的参数传递给代理Explorer,它会根据不同的文档格式,启动对应的默认程序,然后再执行相应的操作。当默认程序换了,就会启动新设定的默认程序。而且不仅仅局限于一类文件或程序,而是可以打开任意程序或文档。这就是动态代理模式的应用。


      静态代理是一个代理类服务一个接口,且代理是针对于这个接口编写特定代码,其字节码是编译期生成。而
动态代理的字节码(即编译后的class文件)在程序运行时由java反射机制动态生成,无需程序员手工编写它的源代码。动态代理类不仅简化了简化了编程工作,而且提高了软件系统的可扩展性,因为Java反射机制可以生成任意类型的动态代理类。Java.lang.reflect包中的Proxy类和InvocationHandler接口提供了生成动态代理类的能力。


      先说说Proxy类,它就是一个动态代理类,最终返回Proxy这个动态代理类所代理的接口类对象使用的就是Static

评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值