如何理解并使用代理技术 :
一个典型的动态代理创建对象过程可分为以下四个步骤:
1、通过实现InvocationHandler接口创建自己的调用处理器 IvocationHandler handler = new InvocationHandlerImpl(...);
2、通过为Proxy类指定ClassLoader对象和一组interface创建动态代理类
Class clazz = Proxy.getProxyClass(classLoader,new Class[]{...});
3、通过反射机制获取动态代理类的构造函数,其参数类型是调用处理器接口类型
Constructor constructor = clazz.getConstructor(new Class[] {InvocationHandler.class});
4、通过构造函数创建代理类实例,此时需将调用处理器对象作为参数被传入
Interface Proxy = (Interface)constructor.newInstance(new Object[] (handler));
为了简化对象创建过程,Proxy类中的newInstance方法封装了2~4,只需两步即可完成代理对象的创建。
生成的ProxySubject继承Proxy类实现Subject接口,实现的Subject的方法实际调用处理器的invoke方法,而invoke方法利用反射调用的是被代理对象的的方法(Object result=method.invoke(proxied,args))
Proxy已经设计得非常优美,但是还是有一点点小小的遗憾之处,那就是它始终无法摆脱仅支持interface代理的桎梏,因为它的设计注定了这个遗憾。动态生成的代理类的继承关系图,它们已经注定有一个共同的父类叫Proxy。Java的继承机制注定了这些动态代理类们无法实现对class的动态代理,原因是多继承在Java中本质上就行不通。
有很多条理由,人们可以否定对 class代理的必要性,但是同样有一些理由,相信支持class动态代理会更美好。接口和类的划分,本就不是很明显,只是到了Java中才变得如此的细化。如果只从方法的声明及是否被定义来考量,有一种两者的混合体,它的名字叫抽象类。实现对抽象类的动态代理,相信也有其内在的价值。
此外,还有一些历史遗留的类,它们将因为没有实现任何接口而从此与动态代理永世无缘。
本书试读章节开篇就有一句话,”工欲善其事,必先利其器“,开篇立意,一看见就明白这章节说明什么的。
试读章节说明了如何运用现在的工具、IDE搭建一个开发环境,详细说明了运用到的各个软件的功能、作用、配置等方面的信息,对于初学者来说,非常有帮组。
对于一个初学者,试读章节的内容必不能错过,它是后面所有章节的基石。拥有了它,才能够继续向上攀登。对于一个熟练的开发者,也可以读读这章,可以有不一样的收获。
综上所述,本书对于java的学习者来说,是不可多得的关于框架开发的一本好书,虽然目前存在许多开源的框架。但是学习好如何搭建一个自开发的框架,对我们的能力肯定有一定的提升。
相关推荐
1. **Java基础**:在进入Web开发之前,首先需要掌握Java语言的基础知识,包括类、对象、接口、异常处理、多线程以及集合框架等。这些是编写任何Java程序的基础,对于理解Web应用的逻辑至关重要。 2. **Servlet与JSP...
第9章详细介绍了作者曾经的冠军作品——跨终端存储方案(Storage),这是一个利用Web技术实现统一数据存储与访问的方案。 第10章完整阐述了如何通过脚本录制和回放技术实现跨终端动作同步。这项技术允许开发者记录...
信息架构是构建和管理信息环境的一门科学,它跨越了Web设计、用户体验、内容策略以及其它与信息有关的专业。在数字化时代,随着移动设备、物联网(IoT)和人工智能技术的兴起,信息架构的角色和应用领域不断扩展。 ...
【系统架构设计师】论文主要探讨了微服务架构在构建一站式互联网大数据征信平台中的应用,文章首先介绍了背景,指出传统单体架构在面对快速变化的需求和大规模用户量时的不足,以此作为采用微服务架构的理由。...
在听取不同意见时,如医生、立法委员、建筑师等专业人士的观点,批判性思维要求我们能够从多个角度考量,并通过提问来深入理解每个角度的合理性。 ### 沟通技巧 #### 1. 提问的艺术 提问不仅是获取信息的手段,也...
以Java语言为载体,通过讨论Java程序设计的一般过程和方法,重点讲述程序设计基础、面向对象程序设计、算法与数据结构、GUI程序设计和Web程序设计的知识,并涉及计算机科学基础、数据和控制、程序设计理论、软件工程...
这份"用户操作手册模板——教你如何写操作手册.zip"包含了一个详细的文档,旨在指导你如何创建高效且易懂的操作手册。 首先,编写用户操作手册时,需要明确目标读者群体。手册应当简洁明了,适应不同技术背景的用户...
Java的应用广泛,包括Web应用、移动应用、服务器端开发、大数据处理等。 2. **基础篇内容**: 本书的基础篇通常会涵盖Java编程的基本概念,如: - **环境配置**:如何安装JDK(Java Development Kit),设置环境...
《通信新读——从原理到应用》是一本深入浅出探讨通信技术的书籍,它旨在帮助读者理解通信技术的基础知识并将其应用到实际场景中。试读部分可能涵盖了书中的核心概念,为读者提供了一个全面了解通信技术的窗口。在这...
09金融联考复习全书——辅导讲义(试读版)
《实战Java高并发程序设计》是一本专注于Java并发编程实践的书籍,试读版提供了前两章的内容,为读者提供了一个初步了解并发编程基础的窗口。在Java领域,并发编程是构建高性能、高效率系统的关键技术,对于软件开发...