【发布时间】:2011-08-07 12:41:38
【问题描述】:
这些天我曾经使用 JSF,但是有一个“约定”我怀疑是否应该使用。在使用托管 bean 时,人们习惯将其命名为 XxxxxManagedBean,其中前缀可以是与您的业务相关的任何名称。
你有过这样的工作吗?特别是,尽管使搜索变得容易,但我不太喜欢。您是否使用其他约定?
感谢您回答这个简单的疑问。
【问题讨论】:
标签: jsf naming-conventions managed-bean
这些天我曾经使用 JSF,但是有一个“约定”我怀疑是否应该使用。在使用托管 bean 时,人们习惯将其命名为 XxxxxManagedBean,其中前缀可以是与您的业务相关的任何名称。
你有过这样的工作吗?特别是,尽管使搜索变得容易,但我不太喜欢。您是否使用其他约定?
感谢您回答这个简单的疑问。
【问题讨论】:
标签: jsf naming-conventions managed-bean
JSF 本身没有指定严格的约定。我见过以下约定:
FooBeanFooBackingFooManagerFooControllerFooManagedBean或者甚至只是Foo,然后将其放入特定的包中,例如com.example.controller、com.example.backing甚至com.example.view等。
我自己倾向于将FooManager 用于应用程序和会话范围的bean(例如DataManager、UserManager、LocaleManager 等)和Foo,或者按照我当前项目的要求,FooBacking (例如Login 或LoginBacking)用于请求和视图范围的bean,它们通常都与特定的<h:form> 和/或视图相关联。
FooBean 太模糊了。真的很多类都可以标记为javabeans。 JSF 托管 bean、JPA 实体、EJB、数据传输对象、值对象等。Bean 命名并不以任何方式表明类的真正责任。没错,我在博客或论坛/问答答案的通用代码示例中使用 often public class Bean 或 MyBean,但在现实世界中你应该避免这种情况。
FooManagedBean 是 IMO 一个糟糕的名字,它不仅太长而且丑陋,而且从技术上讲,托管 bean 是由某个框架(JSF 在此案子)。 The class definition itself is really a backing bean, not a managed bean。所以FooBackingBean 在技术上更正确,但它仍然太长而且Bean 部分有点痒。
无论如何,这是一个非常主观的问题,很难用 The One And Correct 答案客观地回答。对我或其他人来说,你对它的看法并不重要,只要你在整个项目中保持一致即可。
【讨论】:
xxxManagedBean。或者更确切地说:不要专注于名称的第二部分。重要的部分是xxx。 SomeFormBean 是比 PersonFormBean 差的名字,比 CreditUserBean 差。您明白了:后一个名称告诉您有关 bean 的全部内容。从长远来看,这对您有帮助。