内容简介:代理模式的作用是控制和管理对象的访问权限;它的优点是:想要找代理的对象,可以不用每次都自己实现某个功能,可以把某个方法的调用权限,交给代理类来完成。一般分为运行结果: 普通上传啦~静态代理是自己写代理类,动态代理是让代码动态实现代理类:
代理模式的作用是控制和管理对象的访问权限;它的优点是:想要找代理的对象,可以不用每次都自己实现某个功能,可以把某个方法的调用权限,交给代理类来完成。一般分为 静态代理 和 动态代理 。要实现代理模式,代理类和目标类需要实现同样的接口。 这个以上传业务举例:
静态代理
//我们定一个接口
interface IUpload {
void onUpload();
}
//定义目标类,实现前面接口
public static class CommonUploader implements IUpload {
@Override
public void onUpload() {
System.out.println("普通上传啦~");
}
}
//定义代理类,实现同意的接口
public static class ProxyUploader implements IUpload {
//代理类持有目标对象类的引用
CommonUploader commonUploader;
private ProxyUploader(CommonUploader commonUploader) {
this.commonUploader = commonUploader;
}
//扩展实现
@Override
public void onUpload() {
commonUploader.onUpload();
}
}
//****运行****
public static void main(String a[]) {
CommonUploader commonUploader = new CommonUploader();
//静态代理
ProxyUploader proxyUploader = new ProxyUploader(commonUploader);
proxyUploader.onUpload();
}
复制代码
运行结果: 普通上传啦~
动态代理
静态代理是自己写代理类,动态代理是让代码动态实现代理类:
interface IUpload {
void onUpload();
}
public static class CommonUploader implements IUpload {
@Override
public void onUpload() {
System.out.println("普通上传啦~");
}
}
//****以上代码和静态代码一致
public static class DynamicProxyUploader implements InvocationHandler {
Object object;
DynamicProxyUploader(Object o) {
this.object = o;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
method.invoke(object, args);
return null;
}
}
//***运行
public static void main(String a[]) {
CommonUploader commonUploader = new CommonUploader();
//动态代理
IUpload iUpload = (IUpload) Proxy.newProxyInstance(commonUploader.getClass().getClassLoader(),
commonUploader.getClass().getInterfaces(), new DynamicProxyUploader(commonUploader));
iUpload.onUpload();
}
复制代码
运行结果: 普通上传啦~
Proxy类位于 Java 源代码的java.lang.reflect下,是动态代理机制的主类,它提供了一组静态方法来为一组接口动态地生成代理类及其实例。
Thanks:
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
左手打工,右手创业
韩垒 / 东北师大 / 2011-4 / 29.80元
《左手打工右手创业》内容简介:打工一族,不能没有激情,不能没有梦想,激情能让你战胜困难,勇往直前;同时,要让梦想变成现实,你还必须具备务实的态度和实干的精神,一步一步向目标前进。创业不是简单的乌托邦式的理想,不是仅凭一腔热血加美好梦想就能顺利到达胜利的彼岸。个人创业更多的是要依靠前期科学的规划、多角度的观察、理性的分析、有效的资源分析与整合、成熟高效的运作技能、良好的商业心态等。 《左手打工......一起来看看 《左手打工,右手创业》 这本书的介绍吧!