これらのテクノロジに代わる Java はありますか? データ バインディング機能と INotifyPropertyChanged は (コンテナやそのような要素と共に) よく使われますが、.NET のクロスプラットフォームがないことから、Java を思い浮かべます。何を指示してるんですか?同等の製品はありますか?XAML を実装するもの?
2 に答える
テクノロジー (WPF)
Java プラットフォーム用の WPF に代わるものを探している場合は、JavaFXをご覧ください。
このテクノロジは、次の点で WPF と非常によく似ています。
- アプリケーションのユーザー インターフェイスは、オブジェクトで構成されるシーン グラフと呼ばれるオブジェクトのツリーで構成されます (オブジェクト
Node
で構成される WPF ビジュアル ツリーに似ていUIElement
ます)。 - ノードとその
Pane
派生物は、概念的には WPF レイアウト パネルに似ています。 - ユーザー インターフェイスは、XAML に似た FXML と呼ばれるマークアップを使用して作成できます。
- JavaFX は、バインディングと変更通知をサポートするプロパティを表すオブジェクトを提供します (依存関係プロパティを考えてください)。依存関係プロパティとは異なり、これらはユーザー インターフェイス テクノロジに関連付けられていないため、モデル クラスで使用できます。
- ユーザー インターフェイスは、CSS を使用してスタイルを設定できます。
JavaFx は WPF とどのように比較されるかという質問に対する私の回答を見てください。これは、WPF と JavaFX のより詳細な (ただし高レベルの) 比較を提供します。
デザインパターン(MVVM)
MVVM パターンは、プレゼンテーション モデルパターンを特殊化したものです。プラットフォームはバインディングをサポートするプロパティを提供し、プレゼンテーション モデルは基本的にモデルの状態をカプセル化し、その状態に基づいて動作する操作を提供するオブジェクトであるため、JavaFX でこれのバリエーションを作成することができます。
私が見たほとんどの例では、model-view-presenter パターンの変形を使用しています。すぐに使用できる JavaFX は、各ビューが「コントローラー」クラスに関連付けられている非常に単純な MVP 構造をサポートしています。これは小規模なアプリケーションでは問題ありませんが、懸念事項を大幅に分離することにはなりません。
すばらしいMVVMFX Frameworkに注目してください。記述的 UI 宣言 (FXML/XAML) のような WPF と JavaFX の類似点に基づいて、WPF を使用した開発のベスト プラクティスを採用しようとしました。
もちろん、Databinding の概念をサポートし、ビュー、viewModel、およびモデル間の通知に必要なインターフェイスを実装します。UI とその UI ロジック (分離コード) は、fxml ファイル (Scene Builder で作成) と必須の Java クラスで実現されます。多くの良い例があり、最も純粋な MVVM パターンの厳密な実装であるため、それらの概念を理解するのはそれほど難しくありません。必要なのは、プロジェクトの依存関係でフレームワークを確立することだけです。