JavaBean与Java的Class的关系[Java编程]
本文“JavaBean与Java的Class的关系[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
要说Bean,就得提到Introspection和Reflection,还有“动态”.
普通而言,开辟者社群说到动态语言,大致认同的一个定义是:“程序运行时,答应改变程序构造或变量范例,这种语言称为动态语言”.从这个概念看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言.
固然在这样的定义与分类下Java不是动态语言,它却有着一个非常突出的动态相关机制(其实C++也是这样的动态机制):Reflection.这个字的意思是“反射、映象、倒影”,用在Java身上指的是我们可以于运行时加载、探知、利用编译期间完好未知的classes.换句话说,Java程序可以加载一个运行时才得出名称的class,得悉其完好构造(但不包含methods定义),并生成其对象实体、或对其fields设值、或唤起其methods.这种“看破class”的本领(the ability of the program to examine itself)被称为introspection(内省、内观、查验).Reflection和introspection是常被并提的两个术语.Java中的类都有这样的特点(有时间的话,可以看看Java的Class这个类).
而JavaBean,首先是JAVA的一个类Class,然后再具有Bean的特点.简单的说,就是符合一定标准(getter和setter的命名与变量名一致)的类.这样的类可以通过Java的reflexion机制,自动获得属性的值.常见的就是一些办法的命名getXXX(),setXXX(),一些事件接纳者的注册要服从一定的标准.
由于JavaBean也是Java的一个Class类,所以JavaBean也有introspection和Reflection的性质.前者Introspection就是类的get和set办法,也就是类设定和获得自身属性值的办法.此后者Reflection就是java程序在运行中查抄自己包含对象的本领,便可以在加载对象后得到对象属性和办法的名称,并且通过调用前者得到一个值.还有一个是Bean的Methode和Interface的命名具有Design Pattern的特点(这个也是可以忽视的.)
bean 提出来的目的是组件化,跟其他程序语言比方 delphi 中提出的控件是一样的, 不过它给出了一些标准, 假如大家都服从了, 便可以利用同一种机制来调用差别的控件.只是为了更便利重用性更强罢了,也不是专门为 web service 而提出了.相比之下,GUI类的 bean 跟普通概念上的组件更相象.别的Bean的class比普通的class有很多标准与限制,所以它们的实现机制不一样.
换句话说,JavaBeans其实就是普通的JAVA代码片段,只不过是考虑了代码的重用而变成一些“组件化”了的java程序代码,且根据一定的情势制作.
JavaBean在本质上和普通的类的确没差别.但在思惟和利用上有些差别.如:JavaBean通过setXXX(),getXXX()等办法供应操作Bean中数据的办法,这样在Web利用程序开辟时,页面计划者可以不用再和java代码打交道直接通过html标签便可以完成呼应数据的操作.这时Bean计划的目的,就在于将页面计划者和程序开辟者断绝.至于重用性,我倒感受和普通类差别不大.
以上是“JavaBean与Java的Class的关系[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |