JavaBean与Java的Class的关系
日期:2007年9月9日 作者: 查看:[大字体 中字体 小字体]-
要说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的关系 相关文章:
- ·Vista系统实现自动关机技巧
- ·Windows Vista系统调试外置麦克风技巧
- ·Vista操作系统中文件扩展名如何显示
- ·Vista系统无法开启打印机共享怎么办?
- ·Windows Vista系统如何用命令行运行系统还原
- ·Windows Vista系统存储优化完全手册
- ·企业选购指南:国内防火墙系统大比拼
- ·加快Windows Vista系统窗口打开速度的方法
- ·防范黑客攻击Oracle系统的八大常用方法
- ·Windows XP系统中如何重置TCP/IP协议
- JavaBean与Java的Class的关系 相关软件
- ·公司企业网站管理系统模板功能强大版
- ·学校源码管理系统超靓版V2008
- ·畅游系列之坦克大战
- ·《冰封王座》地图:台海风系列之海上争霸V1.00
- ·暗影狂奔-Vista版免CD补丁+XP系统兼容补丁
- ·《星际争霸》战队2V2系列录象包:[Y.H]VS Nexus
- ·电子竞技原创歌曲系列《醉酒云雾》
- ·郭小峰探案系列
- ·名画典藏系列-中国绘画之神仙篇
- ·《雷神之锤4》v1.3到v1.4.2升级补丁(Windows系统专用)
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
精品推荐
热点TOP10
- ·JAVA教程 第五讲 AWT图形用户界面设计
- ·SP 短信开发-基础知识篇
- ·使用JAVAMAIL发邮件的一个例子(转)
- ·J2ME蓝牙程序开发实战入门
- ·用Java实现音频播放
- ·使用SimpleDateFormat必须注意的问题
- ·Sun:JavaFX Mobile和JavaFX Script
- ·Java EE6提案的两大主题:拓展性和概要
- ·Java会因为RoR的流行而过时吗?
- ·Java资料:Swing中的事件处理详细资料
- ·Java知识:Web应用下实现定时任务简便方法
- ·技巧:Java中用动态代理类实现记忆功能
- ·新手入门:写Java程序的三十个基本规则
- ·入门:Java初学者入门要注意的基础知识
- ·Java SE 6中XML数字签名标准Java接口
- ·JForum 2.1.7 源程序编译草记
- ·Spring中的Template和Callback模式
- ·从集合类的升级联想到Java适配器模式
- ·I18N-国际化消息和日志
- ·通过JDMK 进行遗留系统管理
特别推荐
- ·Java精华积累:初学者都应该搞懂的问题
- ·Java多媒体框架设计自动播放机实例详解
- ·如何有效防止Java程序源码被人偷窥?
- ·Cell插件在J2EE系统中的应用
- ·初学者想学Hibernate,初级基础教程
- ·Java语言实现支持视频点播的WEB服务器
- ·关于Java编程的中文问题的几条分析原则
- ·确保J2ME无线移动商业应用程序的安全性
- ·Java开源技术:Eclipse的使用技巧详解
- ·新手入门:Java中的修饰词使用方法总结
- ·JAVA开发者应该去的20个英文网站
- ·使用JDBC创建数据库访问程序
- ·JDK的命令详解
- ·Java学习从入门到精通(附FAQ)
- ·Tomcat性能调整
- ·JSF:Java中面向Web开发的生旦净末丑
- ·对Java语言入门初学者的一些建议
- ·Java技术的新方向
- ·Jive源代码研究
- ·谨慎使用Date和Time类
