Web用FW

ふとおもった。こんな風にPR層でのロジックを書けたら楽しいかも。実現する方法もなんとなく考えついた。

public class PRLogic1 {
  private IService service;

  public void logic() {
    service.func();
    
    Screen1 screen1 = new Screen1();
    screen1.setField1("テキストフィールド初期値");
    show(screen1);// Web的には screen1 画面へ遷移
    // ↑ screen1 画面で何らかのイベントが発生し、screen1 画面を閉じるまで処理は進まない
    
    if(screen1.getResult()==BACK) {
      return;
    } else if (screen1.getResult()==FIND) {
      Screen2 screen2 = new Screen2();
      screen2.setSearchCondition(screen1.getField1());
      show(screen2);
    }
  }
}

Screen1, Screen2 ともに画面のボタンやリンククリックをイベントとして受け取る。
イベントを受け取ったときに、画面を閉じるというコードを書けば、処理は先にすすむ。
画面を閉じないと同画面遷移となる。
検索結果一覧の「次の10件」等のリンクでは、画面が保持する表示開始位置の属性のみを書き換えて、画面を閉じない(=同画面遷移させる)。

まだなんとなくのイメージで、細かい部分はつめていないけど、なんかいけそうな予感。

Struts を使用して Web アプリを作る場合、粒度の細かいアクションが数多く出来てしまい、各アクションを繋いで、一つの機能を作るというのが多いと思います。しかしそうなると、アクションの粒度が細かいため、一連の処理を追いづらいという弊害があります。前から何とかしたいとは思っていまして、なんとなく考えていたのは一連の処理を一まとめに扱えればよいのではないかと。

で、上記のようなのを妄想してみてます。ちなみに Screen は自分の表示に必要な情報を モデルから自動的(ぽく)とってくるのを考えてます。まだなんとなくのイメージですが。


#とりあえず、なんとなくのアイディアを出していってみたらこんなふうになりました。