MVPパラダイムは、モデルとビューがプレゼンタを介して接続されていることを前提としていますが、CellTableではデフォルトでコンストラクタにtype引数が必要です。これは、CellTableをMVPに合わせることができないということですか?CellTableを使用したMVPアーキテクチャの実現
2
A
答えて
3
MVPでCellTableの使用に成功しました。重要な点は、このアーキテクチャの目的を理解することです。
MVPはあなたのモデルに完全に無関係なビューではなく、特定のモデルクラスでのみ動作するビューをMVPで作成しても問題ありません。主なポイントは、発表者ができるだけ多くのモデル処理とイベント処理を維持することです。これにより、プレゼンターコードを効率的にユニットテストすることができます。ブラウザー環境(ウィジェットなど)が必要なものは、通常のユニットテスト(このようなコンポーネントは、非常にの遅い)でのみテストできます。
私はHasDataとして返されるテーブルを作成するためのViewインターフェイスメソッドを持っています。プレゼンターバインドメソッドでは、このメソッドを呼び出してテーブルを取得し、テーブルのデータプロバイダーをインスタンス化し、更新されたデータでプレゼンターのデータプロバイダーを操作します。
//MyPresenter.java
HasData<MyClass> table = display.addTable();
ListDataProvider<MyClass> dataProvider = new ListDataProvider<MyClass>();
dataProvider.addDataDisplay(table);
//assumes results is a collection of MyClass to display.
//use for loop if you need to do some manipulation to get the objects in
dataProvider.getList().addAll(results);
//MyView.java
@Override // since this implements the definition from the view interface
public HasData<MyClass> addTable()
{
CellTable<MyClass> table = buildTable(); //boiler-plate table building code in this method
myPanel.add(table);
return table;
}
これは私はそれが属するビューのビューロジック(カラム定義と、そのような)を維持することができます、そしてプレゼンターでデータモデルを扱います。
関連する問題
- 1. powerbuilderでのMVPアーキテクチャの実装
- 2. MVPパターンを使用したアンドロイドのFacebookログイン実装
- 3. MVPアーキテクチャを使用して実行時に権限をチェックする最良の方法は何ですか?
- 4. MVPアーキテクチャでWebSocketチャットを行う場所
- 5. Android MVPアーキテクチャ - リポジトリとビュー間の通信
- 6. MVPデザインパターンを使用したGoogleアナリティクス
- 7. 共有Nothingアーキテクチャを使用したWebショップの実装方法
- 8. 3Tierアーキテクチャと(MVCまたはMVP)の違い
- 9. GWTを使用したプラグインベースのUIアーキテクチャ
- 10. モバイルアプリを使用したウェブアプリケーションのアーキテクチャ
- 11. SOAアーキテクチャ.NETを使用した実世界サンプル
- 12. Symfony PHPで3層アーキテクチャを実現
- 13. artoolkitを使用した拡張現実
- 14. WCFを使用した3層アーキテクチャ
- 15. RESTアーキテクチャを使用したSpringセキュリティ
- 16. passport.jsを使用したマイクロサービス認証アーキテクチャ
- 17. Play Frameworkを使用したJava EEアーキテクチャ
- 18. SQL Server CEを使用したアーキテクチャ
- 19. Androidアーキテクチャを使用したAppWidgetProviderコンポーネント
- 20. MVP Android実装
- 21. MVPアーキテクチャーを使用したビューイング内のフラグメントをリフレッシュする
- 22. strings.xmlからのエラーテキストをMVPアーキテクチャでモデル化する
- 23. WPFフォームを使用した3層アーキテクチャの使用方法
- 24. マシンレベルのアーキテクチャ、他者を使用してコマンドを実装する
- 25. WebフォームとDIオブジェクトのインスタンス化を使用したMVPパターン
- 26. GWTのcelltable - 私は次のコードを使用してcelltableにボタン型電池列を追加テーブル
- 27. Android MVPアーキテクチャでサービスとアクティビティを分離する方法は?
- 28. ESBとMQを使用した非同期通信アーキテクチャの実装方法
- 29. MVPを使用してスレッドでシリアルポートを実行しています
- 30. Azure Traffic Managerを使用した高可用性の実現
'TransUnit'は' MyClass'を読み、 '@ Override'は' addTable'から省略しなければなりません。または私は何かを逃したか? –
@MattWallisあなたはクラスについて正しいです。プレゼンターが(少なくともそれは私がいつもやったやり方である)ビューインターフェースを参照するので、プレゼンターでアクセスされているビュー内の何かには通常@オーバーライドがあります。ここに含める。 –