私は現在 3 つの Vaadin アプリケーションに取り組んでおり、何かが恋しいと感じています。以前は Spring MVC を使用していましたが、アーキテクチャが明確で分離されていて、サービスをコントローラーに注入し、コントローラーを UI に結合しないなどでした。
Vaadin では話は別です。Vaadin の専門家がいる場合は、いくつか質問させてください。
質問1:
- サービス (または DAO) を UI コンポーネントに直接注入しても問題ありませんか?
- 例: 電子メール アプリケーション (リンク付きの VerticalLayout に基づく ContactWidget) で連絡先を表示するコンポーネントは、連絡先を表示する必要があります。この UI 要素に contactRepository を直接注入しても問題ありませんか?
質問2:
- 多くの UI コンポーネントが何らかのグローバル データにアクセスするか、メイン アプリケーション クラスでグローバル メソッドを呼び出す必要があるため、メイン アプリケーションへの参照が大量の UI コンポーネントに渡されます。
- 例: Popup コンポーネントには、アプリケーションのメイン ウィンドウの子である必要がある、新しいウィンドウを開くボタンがあります。したがって、ポップアップ コンポーネントにはメイン アプリケーションへの参照が必要です。
質問 3:
- UI コンポーネント間の依存関係は非常に大きくなる可能性があります。おそらくここで行うことはあまりありませんが、このウィンドウがそのポップアップに依存するこのリストに依存しているように感じられないことがあります...
コードがSpaghettiになる前に、Vaadin を使用した優れた設計についてできるだけ多くのことを学びたいので、提案、経験、ベスト プラクティスをいただければ幸いです。