- 1
- 0
- 约3.8千字
- 约 7页
- 2016-11-29 发布于河南
- 举报
JavaBean到底是个什么东西
JavaBean到底是个什么东西
1.JavaBean与EJB(1)JavaBean与EJB规范在以下方面有共同的目标:通过标准的设计模式推广Java程序代码,提升开发过程和开发工具之间的重复运用性可携性.但是这两种规格的原始问题却是为了解决不同的问题.定义于JavaBean组件模型中的标准规范,被设计来产生可重复运用的组件,而这些组件通常被用于IDE开发工具,而且通常是可视化组件,当然并不一定是可视化组件.(2)EJB规范所定义的组件模弄,刚是用来开发服务端的Java程序,由于EJB可能执行在不同的服务器平台上,包括无图形的大型主机上,所以EJB无法使用类似AWT或SWING之类的图形化程序库.2.JavaBean与类库的区别:(1)并不是所有有用的模块都必须转化成Bean.Bean主要是能被用来可视化操作去完成一些效果.(2)类库是一个提供函数操作给编程者的一个有效操作,但是并不能从可视化操作中来获益.(3)举个例子来说:提供JDBC数据库访问的API作为一个类库比作为一个bean要好,因为JDBC的核心是用一个可编程的API,并不是能够直接展现于可视化操作.然而,写一个数库库访问Bean在JDBC的顶层还是有意义的.例如,你可以写一个能定制的"Select"bean以助于用户去组成一个查询语句,并且程序运行时用JDBC去运行这个查询语句,并显示结果集.3.JavaBean与可视化编程3.1可视化编程(1)通过可视化编程的工具如VB,Delphi等,将组件从组件板上拖拉至表单上,当你进行拖拉时,程序开发工具开始为你写代码,这些代码让这个组件在程序执行时得以产生出来.(2)只是将组件拖拉到表单上,通常还不足以完成程序,通常你得改变组件的性质如颜色,文本,连接的数据库等.设计期间可被修改的性质叫属性,佻可以在程序开发工具中修改组件的属性,被建造出来,其配置会被存储起来,每当程序执行时,这些设定便能够回复.(3)在设计期间,可视化组件的一总分由事件来表示,意味着这个组件上可以发生这些事情.(4)程序开发工具会使用反射机制(reflection)机制动态的查询组件的内容,并找到该组件所支持的属性(properties),和事件(Event),知道这些信息后,它便能够显示其属性并允许你加以改变,同时显示可用事件.3.2JavaBean在以上的可视化编程中,可以看出,组件是一段程序代码,通过被存为class内,关键在程序开发工具如何发现组件的属性和事件.VB和Delphi都是通过某种机制来实现这点的,而Java则通过JavaBeans将可视化组件开发带进了一个更高的境界,因为一个Bean就是一个Class.针对以上的内容,JavaBean有如下的规则(1)针对一个名为xxx的属性,你通常要写两个函数,getXxx()和setXxx().(2)你可以用get/set方式来处理boolean,可以用is来代替get.(3)Bean的一般函数不需要遵守上述的命名规则,但是需要为public.(4)对于事件,你可以使用Swing的监听器作法来处理.3.3JavaBean的关键技术(1)Bean构架最关键的一部分是发生在将bean从组件盘palette拖至表单(form)之际,程序开发工具能够产生Bean(如果有default构造函数,就办得到),然后在缺乏Bean源代码的情况下,提取出产生属性工作表(property sheet)和事件处理程序的所有必要的信息.(2)Java的reflection可以让我们找到任何一个未知类的所有函数,reflection机制用来解决Bean的问题,十分完美,不需要和其它可视化语言一样动用额外的语言关键字.**其实上reflection机制会被加到Java中的主要原因之一便是为了支持Beans(当然reflection也为对象的序列化(Serialization)和远端方法调用(remote method invocation)提供了必要的技持).所以,你可能会预期,程序开发工具的设计者应该会在每个Bean身上使用reflection机制,查找其函数,找出bean的属性与事件.(3)Java的设计者希望提供一个标准工具,不但让Bean更易使用,也为产生更复杂的Bean提供标准途径.这个工具是Introspector Class其中最重要的就是static getBeanInfo().可以将一个Class reference传入这个函数,它便会对class进行彻底查询,并回传BeanInfo对象.然后你就可以解剖它,取得其属性(properties),函数(methods),事件(event).3.4 Bean的包装将Bean放到支持Bean的可视化开发工具里之
原创力文档

文档评论(0)