的JavaBeans技术规范描述了一种JavaBean作为
Java Bean是可重用的软件组件,可以在构建器工具中直观地对其进行操作。
由于编写的大多数代码行似乎与在构建器工具中进行可视化处理无关,因此,为什么JavaBean规范成为编写面向对象代码的“方式”?
我想在整个代码中放弃使用传统的getter / setter,而在整个代码中都支持Fluent接口,不仅在生成器中,而且还要担心这样做,因为这样做传统上不是用Java编写面向对象代码的方式。
的JavaBeans技术规范描述了一种JavaBean作为
Java Bean是可重用的软件组件,可以在构建器工具中直观地对其进行操作。
由于编写的大多数代码行似乎与在构建器工具中进行可视化处理无关,因此,为什么JavaBean规范成为编写面向对象代码的“方式”?
我想在整个代码中放弃使用传统的getter / setter,而在整个代码中都支持Fluent接口,不仅在生成器中,而且还要担心这样做,因为这样做传统上不是用Java编写面向对象代码的方式。
Answers:
JavaBean样式访问器已被证明是与所有与原始“构建器工具”场景相似的场景的一个很好的匹配点:一个核心点是:组件被通用容器和工具以及应用程序代码传递和操纵。在应用服务器中,您具有EJB或Spring容器向其中添加事务和依赖项注入的服务组件,ORM向其添加延迟加载和更改检测的持久域模型,并且可以通过库将其序列化为XML,而无需任何特定代码。
访问器提供了一个通用API,该API在如何使用组件方面非常灵活-它不禁止操作顺序。每个访问器调用都彼此独立,并且都遵循相同的模式,因此您可以轻松地添加通用层,以添加功能而不会破坏预期的使用模式。
相反,流利的接口通常设计为一次性使用:创建对象,调用一系列方法,最后以产生最终结果的方法,然后放弃该对象。灵活性(大多数情况下是可选方法)和通用性要少得多,但这恰恰是优点:接口将您逼入预期的使用模式,使其非常易于使用。
因此,JavaBeans和流利的接口在不同的情况下具有优势,您应该使用哪个取决于。您甚至可以将两者结合起来。