4

MVC パターンで作成したこの Web アプリケーションがありますが、MVP パターンを適応させようとしています。

私は GWTPlatform ライブラリを使用しています。このライブラリは、主に と に既にいくつかのコードを移行していPresenterますView。ただし、実際に部品を処理する方法を説明する包括的な資料は見たことがありませんModel。私の MVC パターンでは、コントローラー (MVC) にモデルがあり、ビューはモデルの変更をリッスンしてビューを更新します。モデルはコントローラーによって更新されます。たとえばfireUpdateUser()、モデルを更新する「ユーザーページ」を開いた結果として関数が起動されます。

既にリモート サービス RPC (UserService、UserServiceImpl など) がある場合に、MVP でモデルを実際に処理する方法。Gwtplatform を使用すると、プレゼンターの onReset() 関数に RPC 呼び出しを配置するだけで、getView().getSomething().setValue(something)関連付けられたビューを更新することができます。この場合、モデルをまったく使用する必要はありませんでしたか? また、EventHandler とアクティビティの目的は何ですか?

4

2 に答える 2

3

DAOサービスでは、データ (モデル) を処理するオブジェクトを注入できます。通常、インターフェースとその実装があります。

public interface IMyDao {
    List<String> getAllObject();
}

public class MyDao implements IMyDao {
    public List<String> getAllObject() {
        List<String> os = new ArrayList<String>();
        // DB access or Datastore (Sample code)
        os = datastore.query(...);
        return os;
    }
}

そしてあなたのサービスで

public class ServiceImpl implements Service {

  private final MyDao dao;

  @Inject
  public ServiceImpl(final MyDao dao) {
    this.dao = dao;
  }

  public List<String> getAllObject() {
    // Some processing
    return dao.getAllObject();
  }
}

サービスはプレゼンターによって呼び出されます。したがって、ワークフローはプレゼンター -> Dao (モデル) -> ビュー (プレゼンターによって更新されます) です。

そのebookを見てください。いくつかのアイデアが得られます。

于 2012-04-15T06:23:00.727 に答える
0

この記事を読むことをお勧めします。GWTPlatform の基本概念と使用例について説明しています。

于 2012-04-16T07:07:13.257 に答える