-YetAnother-InterTypeその後

http://d.hatena.ne.jp/koichik/20060106#1136577656
獄長直々のコメント。それは思いつかなかったな〜。たしかにstaticフィールドでも用が足せる局面はあるでしょう。でも、ユーザーコードからまったく触れなくなっちゃうんですよね。インスタンスフィールドだとそのクラス内はもちろん、privateじゃなければ外からも見えます。記述フィールドは確実にあるので大丈夫。でもstaticだとそのフィールドは実際には用いられないので、アクセッサメソッドもフィールドもユーザーコードに無く、フレームワークからのマネジメントに限られた操作になります。蛇足ですが以下にIkushipeサンプル。

@PageModel
public interface IndexModel {
  @Property
  String getUserId();
}

このモデルのgetUserId()メソッドは以下のようにコントローラのユーザーコード内で使えます。

@WebPage(pageModel=IndexModel.class)
public class IndexPage {
  @Listener(moveTo=NextPage.class)
  public boolean next(IndexModel model) {
    String userId = model.getUserId();
    ...
    return true;
  }
}

追記
ということで、IkushipeはDTO分離派だけどDTOを直接コードで触ってもいいよ派なのです。