返回介绍

13.18.5 更复杂的 Bean 支持

发布于 2024-10-15 23:56:30 字数 884 浏览 0 评论 0 收藏 0

我们可以看到创建一个 Bean 显然多么的简单。在程序设计中我们几乎不受到任何的限制。Java Bean 的设计提供了一个简单的输入点,这样可以提高到更复杂的层次上。这些高层次的问题超出了这本书所要讨论的范围,但它们会在此做简要的介绍。我们可以在 http://java.sun.com/beans 上找到更多的详细资料。

我们增加更加复杂的程序和它的属性到一个位置。上面的例子显示一个独特的属性,当然它也可能代表一个数组的属性。这称为索引属性。我们简单地提供一个相应的方法(再者有一个方法名的命名规则)并且 Introspector 认可索引属性,因此我们的应用程序构建工具相应的处理。

属性可以被捆绑,这意味着它们将通过 PropertyChangeEvent 通知其它的对象。其它的对象可以随后根据对 Bean 的改变选择修改它们自己。

属性可以被束缚,这意味着其它的对象可以在一个属性的改变不能被接受时,拒绝它。其它的对象利用一个 PropertyChangeEvent 来通知,并且它们产生一个 ProptertyVetoException 去阻止修改的发生,并恢复为原来的值。

我们同样能够改变我们的 Bean 在设计时的被描绘成的方法:

(1) 我们可以为我们特殊的 Bean 提供一个定制的属性表。这个普通的属性表将被所有的 Bean 所使用,但当我们的 Bean 被选择时,它会自动地调用这张属性表。

(2) 我们可以为一个特殊的属性创建一个定制的编辑器,因此普通的属性表被使用,但当我们指定的属性被调用时,编辑器会自动地被调用。

(3) 我们可以为我们的 Bean 提供一个定制的 BeanInfo 类,产生的信息不同于由 Introspector 默认产生的。

(4) 它同样可能在所有的 FeatureDescriptors 中改变“expert”的开关模式,以辨别基本特征和更复杂的特征。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文