一篇关于javabean的教程
评:
自己对Javabean一向不懂,郁郁于胸,于是在网上找了一些文章。感觉这一片讲的最深最好。其中详细讲述了javabean的属性和事件这两个主要的概念。
特别是对四种属性的实现方法作了详细解释。其实四种属性在接口上而言是没有区别的。区别在于设值时的具体操作。简单属性只是简单的赋值,Bound属性则是在赋值之后还要向监听该属性值的其他监听者(应该也是javabean)发送一个消息,而constrain属性则是在设值后需要征求其他投票者(应该也是就javabean)征求意见。index属性则是对数组进行赋值,在分类上属于另外一种分类方法。
至于事件则跟swing中的方法很相似。存在一个事件源类和事件监听者类。事件源类中具有注册和注销函数,可以在其中的向量中增加监听者。每当事件发生时,则调用监听者的方法。不过现在这些注册函数,调用监听者的函数都要自己来写。还有一个事件类,用来在事件源和监听者之间传递信息。
个人认为,JavaBean就是一个普通的java类。但它遵循一些定义方法的规范。从而能够使得不同的bean之间可以良好通讯。
原文:
JavaBean的属性
JavaBean的属性与一般Java程序中所指的属性,或者说与所有面向对象的程序设计语言中对象的属性是一个概念,在程序中的具体体现就是类中的变量。在JavaBean设计中,按照属性的不同作用又细分为四类:Simple, Index, Bound与Constrained属性。
3.1.1 Simple属性
一个简单属性表示一个伴随有一对get/set方法(C语言的过程或函数在Java程序中称为"方法")的变量。属性名与和该属性相关的get/set方法名对应。例如:如果有setX和getX方法,则暗指有一个名为"X"的属性。如果有一个方法名为isX,则通常暗指"X"是一个布尔属性(即X的值为true或false)。例如在下面这个程序中:
public class Button implements java.io.Serializable { }
实现了序列化接口的Bean中字段的信息将被自动保存。若不想保存某些字段的信息则可在这些字段前冠以transient或static关键字,transient和static变量的信息是不可被保存的。通常,一个Bean所有公开出来的属性都应当是被保存的,也可有选择地保存内部状态。 Bean开发者在修改软件时,可以添加字段,移走对其它类的引用,改变一个字段的private/protected/public状态,这些都不影响类的存储结构关系。然而,当从类中删除一个字段,改变一个变量在类体系中的位置,把某个字段改成transient/static,或原来是transient/static,现改为别的特性时,都将引起存储关系的变化。
5 JavaBean的存储格式
JavaBean组件被设计出来后,一般是以扩展名为jar的Zip格式文件存储,在jar中包含与JavaBean有关的信息,并以MANIFEST文件指定其中的哪些类是JavaBean。以jar文件存储的JavaBean在网络中传送时极大地减少了数据的传输数量,并把JavaBean运行时所需要的一些资源捆绑在一起 本章主要论述了JavaBeans的一些内部特性及其常规设计方法,参考的是JavaBeans规范1.0A版本。随着世界各大ISV对JavaBeans越来越多的支持,规范在一些细节上还在不断演化,但基本框架不会再有大的变动。