2016-10-22 8 views
0

私は記事Decouple the View and its behavior to create a testable UIに触発され、MVVM patternでJavaFXアプリケーションを再加工したいと考えました。MVVMアプリケーションの関連コマンドを表示

MVVM pattern

理想的ビューモデルは非依存性見ること、通常のJavaクラスとしてテスト可能でなければなりません。また、MVVMはコマンド conseptionを使用してビューモデルをビューから変更します。したがって、コマンド実装はView Model実装の一部であり、簡単にテストすることができます。

質問は、結果がビューの変更である場合、どのようにコマンドを実装するのですか?例えば。 View_1でボタンを押した後、新しいView(View_2など)を作成して表示する必要があります。そのようなコマンドはビューの一部であり、全くテスト可能ではないでしょうか?

+0

y2mvLSzM1kgΔt= 33m14s)。 Volkswagen Group Researchが使用するビューの変更(特にJavaFXの場合)をモデル化して実装するためのパラダイムです。 – beatngu13

+0

@ beatngu13率直に言って、UIを作成するためのフォルクスワーゲンのアプローチを理解していない。プレゼンテーションはあまりにも理論的です。 –

+0

私はプレゼンテーションが少しはっきりするかもしれないことに同意します。興味があれば、相応の質問をしてください。私はあなたにそれを説明します。 – beatngu13

答えて

0

私はコマンドをテストできると思う。どのように正確にビューを切り替えようとしているのかよく分かりませんが、JavaFXのAFAIKにはシーンの親であるシーンとステージのようなものがあります。

あなたのコマンドでは、ステージを依存関係として渡し、実行時に新しいシーンを設定します。

ユニットテストで簡単にテストすることができます。ステージをモックして、コマンドが正しいシーンを渡すかどうかを確認できます。

私はJavaFXのの正確な詳細を覚えていないが、私はこのようにそれを実装し

:[リアクティブモデル]を見て(https://youtu.be/:実際には、あなたの質問に答えるなければ

class SwitchSceneCommand { 
    protected Stage stage; 
    protected Scene originalScene; // you can keep original scene if you want to have some undo-redo functionality 
    protected Scene newScene;   

    public SwitchSceneCommand(Stage stage, Scene originalScene, Scene newScene) 
    { 
     this.stage = stage; 
     this.originalScene = originalScene; 
     this.newScene = newScene; 
    } 

    public void execute() 
    { 
     this.stage.setScene(this.newScene); 
    } 
} 
+0

これはまさに私が避けようとしているのは、純粋なビジュアルUIコンポーネントをテストすることです。 –

関連する問題