为什么JavaBean规范中的访问器方法成为Java开发的标准?


9

JavaBeans技术规范描述了一种JavaBean作为

Java Bean是可重用的软件组件,可以在构建器工具中直观地对其进行操作。

由于编写的大多数代码行似乎与在构建器工具中进行可视化处理无关,因此,为什么JavaBean规范成为编写面向对象代码的“方式”?

我想在整个代码中放弃使用传统的getter / setter,而在整个代码中都支持Fluent接口,不仅在生成器中,而且还要担心这样做,因为这样做传统上不是用Java编写面向对象代码的方式。


因为可以在构建器工具中进行视觉操纵?只是猜测。当然,如果您愿意,也不会阻止您在任何地方使用Fluent接口。如果事实证明这是个坏主意,那么经验丰富的坩埚会让您头疼。
罗伯特·哈维

Answers:


7

JavaBean样式访问器已被证明是与所有与原始“构建器工具”场景相似的场景的一个很好的匹配点:一个核心点是:组件被通用容器和工具以及应用程序代码传递和操纵。在应用服务器中,您具有EJB或Spring容器向其中添加事务和依赖项注入的服务组件,ORM向其添加延迟加载和更改检测的持久域模型,并且可以通过库将其序列化为XML,而无需任何特定代码。

访问器提供了一个通用API,该API在如何使用组件方面非常灵活-它不禁止操作顺序。每个访问器调用都彼此独立,并且都遵循相同的模式,因此您可以轻松地添加通用层,以添加功能而不会破坏预期的使用模式。

相反,流利的接口通常设计为一次性使用:创建对象,调用一系列方法,最后以产生最终结果的方法,然后放弃该对象。灵活性(大多数情况下是可选方法)和通用性要少得多,但这恰恰是优点:接口将您逼入预期的使用模式,使其非常易于使用。

因此,JavaBeans和流利的接口在不同的情况下具有优势,您应该使用哪个取决于。您甚至可以将两者结合起来。


3

好吧,因为您链接到的JavaBeans规范定义了用于访问属性的约定,所以人们决定利用该约定并围绕该约定构建框架。其中一些框架(例如Hibernate)非常有用,因此非常受欢迎。因此,由于人们使用了基于JavaBeans规范的框架,因此javaBeans变得越来越普遍,围绕它们构建了越来越多的框架。

Fluent Interfaces是一个好主意,但是它们在Spring或Struts 2中玩得很好吗?甘拜下风。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.