質問

最近、MVCについてStackoverFlowで質問しました:デスクトップアプリケーション開発でMVCデザインパターン/アーキテクチャパターンを使用できますか

提供された回答に基づいて、Windowsフォームアプリケーションでの実装方法の調査を開始しました。次のCodeProjectの記事に出会いました: http://www.codeproject.com/KB/ cs / model_view_controller.aspx

記事の下のコメントで、特定のユーザーは(これは良い記事ですが)それは実際にはオブザーバーパターンであると主張しています。 最初に、しかしそれほど重要ではない質問は、誰もがそれに同意するかどうか、そしてその理由は何ですか?

2番目のより重要な質問について:.NETで小さなタスクリストプログラムを作成しようとしています。それは非常に小さく、うまくいけば高速になります。 一般的に、そのようなプロジェクトのより良いアーキテクチャは何でしょうか?オブザーバーパターンまたはMVCパターン?または別のパターン?

ありがとう

役に立ちましたか?

解決

(この記事は、コントローラーがないという単純な理由からMVC AFAIKの例ではありません。.私に尋ねると、.netデータバインディングにより近くなります。)
MVCはObserverパターンではありません。 MVCは懸念の分離に関心があります。モデル、ビュー、コントローラーはすべて1つのジョブを実行し、他のジョブを実行することを信頼します。ある意味では、コントローラーはビューを「指示」し、変更に対応する方法を指示します(Pure MVC)。また、コントローラーはモデルと適切に対話します(その責任はデータをカプセル化し、制約/規則を実施することです)。 MVCでは、コントローラーはすべてのアクティビティの開始点です。ユーザー入力は最初にコントローラーによって受信されます。ただし、ユーザーが入力を最初にビューで受信し、次にプレゼンターとプッシュ/同期するMVPなどのバリアントがあります。

Observerパターンは、状態の変化について別のオブジェクトを監視する場所です。したがって、.netイベントはオブザーバーパターンに従うと言えます

本当に小さい場合は、パターンを忘れて、アーキテクチャを気にせずにコーディングするだけです。優れたデザインのヒューリスティック/原則に従ってください

設計の問題に遭遇した場合、またはすべてが乱雑になり始めたら、パターン大隊を持ち込みます。

他のヒント

この記事がMVCではないことに同意します。オブザーバーパターンの実装です。 .NETのオブザーバーパターンは、イベントを使用して実装できますが、これは記事の場合です。

MVCには、モデルまたはビューからの要求に対して実行するアクションを制御するコントローラークラスが必要です。 MVCの適用は、関心の分離を大幅に促進するため、非常に優れたプログラミング手法です。 mvcを使用して、よりクリーンで拡張性に優れたテスト可能なアプリを作成できます。別の注意点として、オブザーバーパターンをMVCアプリに適用できます。それらは互いに矛盾しません。

============

2番目の質問に答えるには、どのパターンが最適ですか?ソフトウェア開発へのアプローチの仕方はかなり間違っていると思います。問題にぶつかるまで、これらのことについてあまり心配するべきではありません。例えばこのオブジェクトの状態が変化した場合、これらの他のオブジェクトがそれに反応する必要があるため、オブザーバーパターンを実装します。

私があなたなら、最初にモデル側から始めて、そこから物事を取ります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top