10

アプリケーションコントローラーが何をすべきかについて少し混乱していますか? ボタンがクリックされたときにどのフォームを表示するかを決定する機能が MVP パターンにも存在することがわかりましたか? アプリケーション コントローラー パターンを使用する Windows フォームの良い例はありますか?

MVC(コントローラー)とアプリケーションコントローラーに違いがあります。私は MVC (コントローラー) を知っていますが、アプリケーション コントローラーの役割と、それが WinForms アプリケーションにどのように適合するかはわかりません。Martin Fowler もこれを Application Controller パターンと呼んでいますが、MVC(コントローラー)と同じものではないのでしょうか?

4

3 に答える 3

12

最近、C#WinformsプロジェクトでApplicationControllerを作成して使用し、ワークフローとプレゼンターをフォームから直接切り離す方法についての記事を書きました。それは役立つかもしれません:

ワークフローとフォームをアプリケーションコントローラーで分離する

編集:
Archive.orgは、現時点で記事のより読みやすいコピーを持っています。

于 2009-04-20T21:44:12.297 に答える
12

アプリケーション コントローラーは、MVC で使用されるコントローラーとは少し異なります。

Application Controllerの Martin Fowler のページ。

MVP WinForms アプリの場合、質問のトピックはそれについてだと思います。「今表示するフォーム」のすべてのロジックをプレゼンターに入れることができますが、アプリケーションが大きくなるにつれて、プレゼンター間で多くのコードを複製することになり ます

両方に「このウィジェットを編集」するためのボタンがある 2 つのビューがあるとします。両方とも、WidgetEditorPresenter を取得して関連付けられたビューを表示するためのロジックを持っている必要があります。ApplicationController がある場合、そのロジックを ApplicationController に移動すると、すべてのプレゼンターが ApplicationController に依存するだけで、appController.EditWidget() を呼び出すことができ、正しいビューがポップアップ表示されます。

アプリケーション コントローラーは、画面間を移動するときにシステム全体のアプリケーション フローを制御する超コントローラーです。

于 2008-11-28T15:49:22.947 に答える
0

個人的には MVP や winforms の経験はありませんが、MVC を使用したことがあります。これがあなたの求めているものであることを願っています。そうでなければ、私の答えを完全に無視してください。

MVC の C は、クライアントに提示する次のビューを選択するだけではありません。これには、システム タスクのパフォーマンス (モデルからモデルへのデータ フローに対するログ記録やパーミッションの適用など) を含む、アプリケーションのビジネス ロジックのほとんど (できればすべて) が保持されます。

その主なタスクは、当然のことながら、その上のプレゼンテーション レイヤーを提供し、下のモデル レイヤーからそれらを仲介しながら分離することです。アプリケーションの頭脳と考えることができると思います。

お役に立てれば、

ユヴァル=8-)

于 2008-09-23T13:02:42.660 に答える