【问题标题】:JSF managed bean naming conventionsJSF 托管 bean 命名约定
【发布时间】:2011-08-07 12:41:38
【问题描述】:

这些天我曾经使用 JSF,但是有一个“约定”我怀疑是否应该使用。在使用托管 bean 时,人们习惯将其命名为 XxxxxManagedBean,其中前缀可以是与您的业务相关的任何名称。

你有过这样的工作吗?特别是,尽管使搜索变得容易,但我不太喜欢。您是否使用其他约定?

感谢您回答这个简单的疑问。

【问题讨论】:

    标签: jsf naming-conventions managed-bean


    【解决方案1】:

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

    • FooBean
    • FooBacking
    • FooManager
    • FooController
    • FooManagedBean

    或者甚至只是Foo,然后将其放入特定的包中,例如com.example.controllercom.example.backing甚至com.example.view等。

    我自己倾向于将FooManager 用于应用程序和会话范围的bean(例如DataManagerUserManagerLocaleManager 等)和Foo,或者按照我当前项目的要求,FooBacking (例如LoginLoginBacking)用于请求和视图范围的bean,它们通常都与特定的<h:form> 和/或视图相关联。

    FooBean 太模糊了。真的很多类都可以标记为javabeans。 JSF 托管 bean、JPA 实体、EJB、数据传输对象、值对象等。Bean 命名并不以任何方式表明类的真正责任。没错,我在博客或论坛/问答答案的通用代码示例中使用 often public class BeanMyBean,但在现实世界中你应该避免这种情况。

    FooManagedBean 是 IMO 一个糟糕的名字,它不仅太长而且丑陋,而且从技术上讲,托管 bean 是由某个框架(JSF 在此案子)。 The class definition itself is really a backing bean, not a managed bean。所以FooBackingBean 在技术上更正确,但它仍然太长而且Bean 部分有点痒。

    无论如何,这是一个非常主观的问题,很难用 The One And Correct 答案客观地回答。对我或其他人来说,你对它的看法并不重要,只要你在整个项目中保持一致即可。

    【讨论】:

    • 我看到人们使用 FooMB 作为 FooManagedBean 的快捷方式
    • 根据经验,尽量使用非技术名称。从上下文很明显,您的 bean 是托管 bean,所以不要称它为 xxxManagedBean。或者更确切地说:不要专注于名称的第二部分。重要的部分是xxxSomeFormBean 是比 PersonFormBean 差的名字,比 CreditUserBean 差。您明白了:后一个名称告诉您有关 bean 的全部内容。从长远来看,这对您有帮助。
    • 我们可以将 FooView 命名为 primefaces 吗?还是我错了?
    猜你喜欢
    • 2023-03-05
    • 2016-07-09
    • 2012-10-13
    • 2011-07-10
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多