kagamihogeの日記

kagamihogeの日記です。

インスタンス・アクション

Struts の話。

public class HogeAction extends Action {
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
FooAction fooAction = new FooAction();
ActionForward forward = fooAction.execute(mapping, form, request, response);
}

Action をインスタンス化して execute を呼んでる。確かにコンパイルは通るし、フツーに動くし、問題は無いと言えば無いんだけど…アクションの中でアクションを呼ぶという発想が斬新過ぎるというか…。

なぜこのようなコードになったかだけど、動機はおそらく単純で FooAction の内容を HogeAction でも実行させたかっただけの話らしい。だったら共通部分をクラスにするなりメソッドにするなりすればいいのでは、と思わないでもないのだけど…。「コンパイルが通って動いてるから何か問題あるんですか」とか言われてしまったらどう返せばいいんだろうなぁ。