假设我有这样的课程:
@ManagedBean
public class A {
@ManagedProperty("#{B}")
private B b;
private Object o;
public void operation() {
b.methodCall(o);
}
public void setB(B b) {
this.b = b;
}
public Object getO() {
return o;
}
public void setO(Object o) {
this.o = o;
}
}
现在,当我从 xhtml 进行方法调用时,我可以简单地编写:
<p:commandButton actionListener="#{a.operation()}" />
但是我也可以向我的托管 bean 添加一个吸气剂:
public B getB() {
return b;
}
并像这样调用相同的方法,从而无需在我的托管 bean 的第一个版本中编写 operation() 方法。
<p:commandButton actionListener="#{a.b.methodCall(b.o)}" />
在我看来,第一种方法在重构时会更容易,因为 ide 支持重构 java 类,但同时它让我编写了一个简单的方法,它只是作为传递参数的一种手段。
哪个是更好的方法?