次のようなクラスがあるとします。
@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)}" />
最初のアプローチは、Javaクラスのリファクタリングでのideのサポートにより、リファクタリング中の方が簡単なように思えますが、同時に、パラメーターを伝達する手段としてのみ機能する簡単なメソッドを作成できます。
どちらがより良いアプローチですか?