【问题标题】:Producer Methods vs Named Classes生产者方法与命名类
【发布时间】:2012-02-29 16:58:53
【问题描述】:

我想知道首选哪种方式:通过完整的 classname.property 访问支持 bean var,还是通过生产者方法直接访问属性名称?尤其是如果项目变得更大,有很多类、服务、外观等。

@Named
public Service {
    List<Customer> getCustomers();
}

use:
<h:dataTable value="#{service.customers}" />

public Service {
    @Produces
    @Named
    List<Customer> getCustomers();
}

use:
<h:dataTable value="#{customers}" />

对我来说,第一种方式的好处是,如果我必须更改 jsf,由于完整的限定名称,我总是知道我必须修改哪个类。

这显然是第二种方式的缺点,但相比之下,在有许多服务和类的情况下阅读起来会更好。

专家们会怎么说?

【问题讨论】:

    标签: java jsf cdi


    【解决方案1】:

    IMO,我选择第一条路线。重构也更容易(假设您的 IDE 也将在 JSF 页面中重命名)。虽然,老实说,我希望这是个人风格的东西。

    使用 service.property 的另一个优点是能够修改属性并将其反映在 UI 上。如果您使用的是生产者,则每个范围仅调用该生产者一次,而始终调用 getter(另一种性能折衷)。做事的方法有很多种,不管用什么方法都很好,那就用那种方法吧。

    【讨论】:

      【解决方案2】:

      我会选择第一个选项,因为我喜欢总是引用与页面相关的托管 Bean。我相信这是一个更容易理解的代码。

      【讨论】:

        猜你喜欢
        • 2023-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-15
        • 2019-04-01
        • 2015-10-01
        • 1970-01-01
        相关资源
        最近更新 更多