こんにちは私はJavaのMVCについて学校のデータベースで見つけた例を読みました。ボタンがコントローラー部分に入るこの例があります。しかし、ユーザーが見ることができるすべてのものがビューになければならないので、ボタンがビューにある必要があるのは正しいではありませんか、それとも私はそれを間違って理解していて、Javaでは異なりますか?
3 に答える
この画像は、ウィキペディアのModel-View-ControllerページからのMVCの一般化です。
一般に、UI要素の描画/レンダリングを扱っている場合、それはビューに属します。ユーザーがボタンを操作できるようにするアクション/イベントは、コントローラーに属します(必要に応じて、機能がサービスに委任される場合があります)。
コントローラーにボタンを描画/レンダリングするコードを配置する必要はありません。これは、コントローラーを特定のビューに緊密に結合するものであり、このデザインパターンを使用するという原則に反します。
ボタンはビューに属していると言っているのは正しいです。ただし、コントローラーでボタンを定義する必要がある特定の場合があります。たとえば、動的UIの場合、条件に基づいてコントローラーでボタンをインスタンス化する必要がある場合があります。
ビュー/コントローラーの分離の主な理由の1つは、ビューを「ダム」にし、テストを必要としないUI表現にすることです。UIコンポーネントは多くの場合重量があり、テストのために抽象化する必要があります。これは、元のコンポーネントのインターフェイスを反映した軽量のモックに置き換え、それらをコントローラーのテストに提示することによって行われます。
条件またはビジネスロジックが関係している場合、コードはさまざまなシナリオでテストする必要があるため、コントローラーに属します。
あなたへの私のアドバイス-PureMVCプロジェクトによるJavaのMVC実装を見てください。あなたはそれが素晴らしいことであることがわかるでしょう!インフラストラクチャは、ここで説明するMVCアーキテクチャに従って実装されます。