MS SQL Server をバックエンドとして Swing と MVC デザイン パターンを使用して小さなアプリケーションを実装しようとしています。アプリケーションは、単純なログイン フォームから始まります。また、アプリケーションのユーザーには 2 種類のロールがあります。
- 管理者: すべてのユーザーとアプリケーションが提供するすべての機能を作成、削除、変更、表示できます。
- アプリケーション ユーザー: アプリケーションが提供する機能のみを使用できます。
役割ごとに 2 つの個別のフレーム、つまり UI を持つことを考えています。
メインのログイン フォーム/GUI はビューとして機能し、Observer パターンを使用してビューを登録するログイン コントローラー クラスを備えています。このボタンはイベントを登録し、コントローラがリッスンし、適切な DAO を呼び出してデータベースに接続し、ユーザーがアプリケーションにログオンできるかどうかを確認します。ログインのストアド プロシージャは access_role を返します。つまり、管理者、アプリケーション ユーザー、不明なユーザー、または認証されていないユーザーのいずれかであり、DAO を介してログイン コントローラーに返されます。
カップリングをできるだけ低く保ちたいので、オブザーバーパターンを使用して懸念事項と MVC 設計を分離します。
今、私の質問は、
- ログイン コントローラーは、返された access_role に基づいて、アプリケーション ユーザー UI または管理者 UI のいずれかを表示するかどうかを決定する必要がありますか?それとも、それぞれの GUI を初期化する必要があるログイン UI にその情報を渡す必要がありますか?
- ログイン コントローラーが開始する UI を決定する必要がある場合、それぞれの GUI に対してすべてのリスナーも設定する必要がありますか? それは良い設計上の決定ですか、それともこれを行うためのより良い方法はありますか?
- ログイン コントローラが access_control をログイン フォームに戻す場合、そのログイン フォームは新しい GUI のすべてのリスナーを初期化し、新しい GUI もインスタンス化する必要がありますか? これは、コントローラーが処理するよりも優れていますか?
- 管理者とアプリケーション ユーザーの UI は JFrame にするか、Dialogs にするか?
それについてのご意見をお待ちしております。
敬具、 カシフ・カーン