ホームページ >Java >&#&チュートリアル >ActionListeners は MVC アーキテクチャのどこに常駐する必要がありますか?
MVC と GUI: MVC パターンに従って ActionListeners はどこに属しますか?
背景:
あなたが述べたように、この質問は、ActionListeners の配置に関連しています。 Java で GUI を作成するために使用される Swing アーキテクチャ パターンは、MVC に厳密に従っていません。
ActionListeners の配置:
1. ビューの責任:
技術的には、ビュービューは、UI コントロールにアタッチされた ActionListeners を維持する必要があります。これにより、コントローラーは UI コンポーネントから分離され、実装された任意のビューと連携できるようになります。
2専用のビュー リスナー:
ActionListeners を UI コントロールに直接アタッチする代わりに、専用のビューを作成することもできます。リスナー。このリスナーは、ビューが生成する可能性のあるアクションを記述します。例:
public interface MainViewListener { void didPerformClose(MainView mainView); }
コントローラーはこのリスナーを介してビューをサブスクライブし、閉じるボタンが押されたときにビューは DidPerformClose を呼び出します。
層間通信の管理:
理想的には、MVC アーキテクチャ内の層これにより疎結合が確立され、各層が他の層に対して持つ認識を最小限に抑えることができます。
更新された例:
疎結合を使用したログイン ビューの例:
ログインの例を考えてみましょう。 CredentialsView と LoginView には特定の役割があります:
CredentialsView:
LoginView:
通信にインターフェイスを使用することで、システムを壊すことなくビューとコントローラーの両方を簡単に交換または更新できます。
ActionListeners 配置:
更新された例では、認証ボタンとキャンセルボタンの ActionListeners は依然として LoginView にありますが、LoginView は動作します。 CredentialsView のコントローラーと LoginViewController のビューの両方として使用します。このアプローチにより、責任の明確な分離を維持しながらロジックが簡素化されます。
結論:
以上がActionListeners は MVC アーキテクチャのどこに常駐する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。