数据库中数据项变化不定时如何设计Java Beans - 编程入门网
例
else
……
endif
}
}
协调代码 协调代码的工作职责分为以下几步: 负责创建源Bean和目标Bean; 利用源Bean的属性变化事件******的注册入口注册目标Bean; 改变源Bean的属性的属性,并捕获异常 利用源Bean的属性变化事件******的解册入口解册目标Bean; 数据库中数据项变化不定时如何设计Java Beans(4)时间:2011-01-19 IBM 龚永生2.2 标准Java Bean属性总结 图一 Java Bean属性综合图解 如图一所示,Java语言为Java Bean组件的属性机制提供了良好的基础,这些语言元素包括Java的面向对象技术,接口技术和异常技术等。Java Bean属性命名规则和Java Bean属性设计模板是Java Bean组件的属性机制的规范。遵行这些规范,Java Bean组件的属性可以分为三种:最基本的为简单属性,这种属性只涉及属性所在的Java Bean组件本身;相关属性涉及到三方,包括源Bean、目标bean和协调代码,源Bean为属性的拥有者,目标bean为属性变化事件的监听者,协调代码负责组织双方,另外源Bean还可能实例化一个propertyChangeSupport对象来管理所有目标Bean,propertyChangeSupport对象的工作主要是保存所有目标Bean实例,并激发这些目标Bean的事件变化监听方法;约束属性在原理上和相关属性一样,只是增加了目标Bean对源Bean属性变化的"反对权利"。 Java Bean组件技术是建立在Java基础上的组件技术,它继承了其的所有特点(如跨平台和面向对象),又引进了其它组件技术的思想,这两个方面恰好是其能成为后起之秀的主要原因。它所能支持的属性如相关属性和约束属性是其它组件技术所不能及的。 扩展javaBean属性机制 无论是设计模式中值对象、视图助手,MVC框架中的模型(Model),还是Enterprise Bean中的会话Bean,实体Bean,都和javaBean属****息相关。JavaBean组件属性的优点我们前面已经总结过,随着J2EE平台在企业应用中的广泛使用,JavaBean组件属性的缺陷也就显露了出来:无法满足企业应用动态变化的需要,原因在于javaBean属性是编译时的语言特性,它必须遵行一套命名规则和设计魔板。比如我按照某个企业的要求设计出了2000个实体Bean来满足该企业对信息系统中业务数据模型的需要,过了一定时间后,他们的业务发生了一定的变化,要对数据模型扩充一部分数据项,可想而知我会有多辛苦。扩展javaBean属性机制定义了五种属性访问策略,使得属性的访问代码像脚本一样在运行时决定,另外一个进步就是它支持List和Map属性的元素属性,也就是扩展javaBean属性机制它不把一个Bean的某个List和Map成员看成一个整体属性,而是动态地把这个List和Map成员的元素看成属性,这样无疑提供了一种无限扩展Bean属性的能力,为解决由于数据项变化带来的设计和实现的变更提供了技术基础。 3.1 五种属性访问格式 Common-beanutils 1.6中的propertyUtils实用类使用Java语言的内省反射功能实现扩展属性的设置器和获取器。propertyUtils定义了引用一个特定Java bean属性的五种格式: 简单属性,格式beanName.propName。propName标识了JavaBean beanName的一个属性,这个属性的获取器和设置器的方法是通过JavaBean的标准内省功能决定的。如果要改变简单属性的值,必须要有设置器操作,可以想象成类似调用beanName.[getpropName()|setpropName(value)]; 嵌套属性,格式beanName.propName1.propName2.propName3。像简单属性一样,第一个propName1元素被用来选择一个属性获取器方法,在这个方法返回的对象上使用propName2的获取器方法返回下一个对象,最后这个对象的属性propName3被访问或设置,可以想象成类似调用beanName.getpropName1().getpropName2().[getpropName3()|setpropName3(value)]; 索引属性,格式beanName.propNam |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |