我最近在使用JSF,但是有一个“惯例”让我有些疑惑是否应该使用。在使用托管bean时,人们通常将其命名为XxxxxManagedBean
,其中前缀可以是与您的业务相关的任何名称。
你有这样的经验吗?特别是,虽然这样做可以方便搜索,但我并不是很喜欢。你使用其他约定吗?
感谢解答这个简单的疑问。
我最近在使用JSF,但是有一个“惯例”让我有些疑惑是否应该使用。在使用托管bean时,人们通常将其命名为XxxxxManagedBean
,其中前缀可以是与您的业务相关的任何名称。
你有这样的经验吗?特别是,虽然这样做可以方便搜索,但我并不是很喜欢。你使用其他约定吗?
感谢解答这个简单的疑问。
JSF本身没有指定严格的约定。 我见过以下约定:
FooBean
FooBacking
FooManager
FooController
FooManagedBean
甚至只是Foo
,然后放置在特定包中,如com.example.controller
,com.example.backing
或甚至com.example.view
等。
我自己倾向于为应用程序和会话范围的bean(例如DataManager
,UserManager
,LocaleManager
等)使用FooManager
,而对于请求和视图范围的bean,则仅使用Foo
,或者根据我的当前项目要求使用FooBacking
(例如Login
或LoginBacking
),每个bean通常都与特定的<h:form>
和/或视图相关联。
FooBean
太过笼统了。实际上,许多类都可以被标记为JavaBeans,例如JSF管理的Bean、JPA实体、EJB、数据传输对象、值对象等等。 Bean
命名方式并不以任何方式表明该类的真正责任。当然,在我的博客或论坛/Q&A答案中,我经常使用public class Bean
或MyBean
等通用代码示例,但在现实世界中,你应该避免这样做。
FooManagedBean
在我看来是一个糟糕的名称,它不仅太长而且难看,而且从技术上讲,托管Bean是由某些框架(在此情况下为JSF)管理的实例的背景Bean。 类定义本身确实是后台Bean,而不是托管Bean。因此,FooBackingBean
在技术上更为正确,但它仍然太长,而且Bean部分有点让人不舒服。
无论如何,这是一个非常主观的问题,很难以唯一正确的答案进行客观回答。对我或任何其他人来说,只要在整个项目中保持一致,你对此的看法并不那么重要。
xxxManagedBean
。或者说:不要把注意力集中在名称的后半部分上,重要的是xxx
。SomeFormBean
比PersonFormBean
更糟糕,而CreditUserBean
则更好。你懂的:后者的名称告诉你关于bean的信息,这有助于你长期发展。 - Stephan Rauh