JSF 管理的 bean 命名规范

20

我最近在使用JSF,但是有一个“惯例”让我有些疑惑是否应该使用。在使用托管bean时,人们通常将其命名为XxxxxManagedBean,其中前缀可以是与您的业务相关的任何名称。

你有这样的经验吗?特别是,虽然这样做可以方便搜索,但我并不是很喜欢。你使用其他约定吗?

感谢解答这个简单的疑问。

1个回答

27

JSF本身没有指定严格的约定。 我见过以下约定:

  • FooBean
  • FooBacking
  • FooManager
  • FooController
  • FooManagedBean

甚至只是Foo,然后放置在特定包中,如com.example.controllercom.example.backing或甚至com.example.view等。

我自己倾向于为应用程序和会话范围的bean(例如DataManagerUserManagerLocaleManager等)使用FooManager,而对于请求和视图范围的bean,则仅使用Foo,或者根据我的当前项目要求使用FooBacking(例如LoginLoginBacking),每个bean通常都与特定的<h:form>和/或视图相关联。

FooBean太过笼统了。实际上,许多类都可以被标记为JavaBeans,例如JSF管理的Bean、JPA实体、EJB、数据传输对象、值对象等等。 Bean 命名方式并不以任何方式表明该类的真正责任。当然,在我的博客或论坛/Q&A答案中,我经常使用public class BeanMyBean等通用代码示例,但在现实世界中,你应该避免这样做。

FooManagedBean在我看来是一个糟糕的名称,它不仅太长而且难看,而且从技术上讲,托管Bean是由某些框架(在此情况下为JSF)管理的实例的背景Bean。 类定义本身确实是后台Bean,而不是托管Bean。因此,FooBackingBean在技术上更为正确,但它仍然太长,而且Bean部分有点让人不舒服。

无论如何,这是一个非常主观的问题,很难以唯一正确的答案进行客观回答。对我或任何其他人来说,只要在整个项目中保持一致,你对此的看法并不那么重要。


我见过人们使用FooMB作为FooManagedBean的快捷方式。 - Nabeel
一般来说,尽量使用非技术性的名称。从上下文中很明显你的bean是一个托管bean,所以不要称它为xxxManagedBean。或者说:不要把注意力集中在名称的后半部分上,重要的是xxxSomeFormBeanPersonFormBean更糟糕,而CreditUserBean则更好。你懂的:后者的名称告诉你关于bean的信息,这有助于你长期发展。 - Stephan Rauh
我们能否像PrimeFaces一样将FooView命名为这个名称?还是我错了? - Joe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接