0

MVC クラスを実行する 1 つのメソッドのみで、上から下まで、ユース ケースとして MVC-OOD にコントローラー クラスを設定する必要があることを学びました。

1 つのコントローラーでさまざまなメソッドを使用して、より詳細に制御し、全体像を把握することはできますか?

ログインフォームを表示するコントローラーを実行したいとしましょう(ビューからhtmlなどを取得します)。また、ユーザーがログインしていない場合、同じコントローラーにログアウト ボタンも表示されます。これは、コントローラーの 1 つのメソッドで実行できますが、2 つのメソッドを使用する方がよいようです。ログインフォームが必要な場合に呼び出すメソッドと、ログアウトボタンが必要な場合に呼び出すメソッド。(ほんの一例)

それで、プロは何を言いますか。各コントローラーには「ユースケース」メソッドを 1 つだけ含める必要がありますか?それとも複数にすることができますか?

4

2 に答える 2

1

TL; DR -MVCデザインパターンを誤解していて、間違っています。

コントローラは、インターフェイスのレンダリングやプレゼンテーションロジックの責任を負いません。コントローラは何も表示しません。代わりに、各コントローラーのメソッドは異なるユーザーの要求を処理します。上記のリクエストからデータを抽出し、モデルレイヤーと関連するビューに渡します。

何をどのように表示するかについての決定は、ビューの範囲内にあります。ビューには、MVCパターンのプレゼンテーションロジックが含まれています。Webアプリケーションのコンテキストでは、ビューが応答を作成します。複数のテンプレートからfromを作成することも、単一のHTTPヘッダーを送信することもできます。

コントローラーは、リクエストの特定の値をそのビューに渡すことで、関連付けられたビューに信号を送ることができますが、ビューでの決定のほとんどは、ビューがモデルレイヤーのさまざまなサービスからリクエストした情報に基づいています。

コントローラのメソッドは、ユーザーが送信できるリクエストのタイプに基づいています。たとえば、認証フォームでは、次のようになります:GET /loginおよび/またはPOST /login

于 2012-10-18T15:23:58.387 に答える
0

MVC について 2 つのことを覚えておくことが重要です。1 つ目はオブジェクト指向アーキテクチャであること、2 つ目は関心を分離するために使用する必要があることです。

関心の分離は、抽象化に関連しています。コードのセクションを手元で理解するのに役立ちます。モデルとビューはどちらも、関連するオブジェクトのコレクション/ドメインです。各オブジェクトは完全に完成しており、そのドメインに関連しています。

ビュー内にボタン、画像、テキスト入力などのタイプのオブジェクトがあり、モデル内にビジネス関連のオブジェクト (ユーザー、アカウント、プロファイルなど) があります。

モデル内のオブジェクトのコレクションはあまり機能しない傾向があります。オブジェクトを結び付けるロジックが必要です。(または、単純な単一オブジェクト要求を正しいオブジェクトに委任するだけです)

コントローラーは、モデルへのインターフェイスを提供し、モデルに関連するビジネス ロジックとモデル オブジェクト間の相互作用を含みます。モデルには単一のコントローラーがあり、コントローラーにはユースケースに合わせた複数のメソッドがあります。

于 2012-10-18T19:34:27.383 に答える