Java动态代理

  从JDK1.3开始,Java就引入了动态代理的概念。动态代理(Dynamic Proxy)可以帮助你减少代码行数,真正提高代码的可复用度。例如,你不必为所有的类的方法里面都写上相同的Log代码行,取而代之的是实用类的动态代理类。当然,这种便利是有条件的。

  在JDK1.3以前,代理模式就已流行,所以得代理模式是生成一个和类相同接口的代理类,用户通过使用代理类来封装某个实现类。其目的是加强实现类的某个方法的功能,而不必改变原有的源代码。代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
Continue Reading »

08-12-28 | 编程开发 | Permalink | No Comments |

java反射机制(PDF)

  之前我也写过几篇关于java反射的文章,读完这几篇文章后,对java的反射机制应该有了基本的了解,当然也可以使用java反射进行开发。不过比起今天要介绍的这本书来说,这几篇文章就显的微不足道了。

  今天要给大家介绍的这本书是来自候捷老师的《Java反射机制》。看上去将其叫为文档更为合适,因为本书仅有短短15页,不过已经很好地阐述了java的反射机制。

  本书从Class开始讲起,利用简单的例子,分析说明了Java Classes的组成及对应的 Reflection APIs使用。

  如果你对java的反射有兴趣,不仿下载一本。在线阅读

08-12-25 | 电子书 | Permalink | No Comments |

java反射(三)

  之前我们学习了利用 Java 的反射机制,在运行期间生成对象和运行方法。相比较而言,今天的内容要简单很多--运行期间运态为 Field 赋值。
Continue Reading »

08-10-12 | 编程开发 | Permalink | No Comments |

Java反射(二)

  目前流行的 Perl、Python、Ruby 等都是动态语言,所谓动态是指在程序运行期间可以改变程序结构和变量类型。Java 并不具备这点,所以Java不是动态语言。不过,尽管 Java 不是动态语言,但利用它的 Reflection(反射)机制同样可以在程序运行期间得到 Class 的名称,构造并生成其实例。利用 Reflection 我们可以为 fields(属性)赋值,调用其 method。

  在《Java反射(一)》一文中,我们简单了解了利用 Reflection 机制在程序运行期间生成 Class 实例,今天我们仍然简单地了解一下,利用 Reflection 机制为动态调用 method。
Continue Reading »

08-10-05 | 编程开发 | Permalink | No Comments |

Java反射(一)

  经过这两天的重构,Grape 的内核基本上已经完成了。和大多数 Java 框架一样,Grape 中同样使用了反射机制在运行期间创建对象实例。在此分次为大家简单介绍一下 Java 反射机制的使用。

  我们都知道,在 Java 中对象的实例是通过 new 关键字来创建的。不过,这种方法属于硬编码,不易改变,不灵活。比如在程序中硬编码创建的 Employee 对象,若要使用 Manager 来代替它,只能修改代码。Java 的反射机制是使其具有动态特性的非常关键的一种机制,也是在JavaBean 中广泛应用的一种特性。它可以让程序在运行期间加载编译期间不得而知的Class。并可以生成其实例、调用其方法、为其属性赋值。比如著名的 Hibernate 框架中就大量的使用了反射。本文通过简单的例子,简单介绍如何利用反射生成对象实例。
Continue Reading »

08-10-02 | 编程开发 | Permalink | 1 Comment |