MVC に関する多くの出版物を読みましたが、なぜ「コントローラー」が必要なのか、まだはっきりと理解できません。
私は通常、クライアント サーバーモデルでアプリケーションを作成します。
サーバーにはすべてのビジネスロジックが含まれており、GUI については何も知りません。それは主な仕事をし、可能な限り移植性があります。
clientは GUI であり、サーバーにバインドし、ユーザーとやり取りし、ユーザーからサーバーにコマンドを送信します。
私はこのアーキテクチャが好きですが、なぜ人々がclientとserverの間にもう 1 つの媒体 (コントローラーのように見える) を本当に必要とするのか理解できません。
UPD:簡単な例: データロガーを作成する必要があるとします。データは COM ポートから取得され、何らかのプロトコルによってエンコードされます。単純なログ ウィンドウに受信メッセージを表示する必要があります。
どうやって作るのですか:
サーバーには次のアイテムが含まれています。
Data_receiver: 実際には COM ポートから生データを受け取りますが、これはインターフェイスであるため、他のソースからデータを受け取る別のクラスを作成できます。Data_decoder: 生データを受け取り、結果のデコードされたメッセージを返します。これもインターフェイスであるため、エンコード プロトコルを簡単に変更できます。Data_coreData_receiver:とのインスタンスを使用してData_decoder、クライアントにシグナルを送信します。
クライアントには次のアイテムが含まれています。
- アプリケーション コア:
Data_receiver(COM ポートに接続するもの) のインスタンスを作成しData_decoder、 (およびインスタンスData_coreを参照する)、GUI シンプル ログ ウィンドウ (を参照する) も作成します。Data_receiverData_decoderData_core - GUI の単純なログ ウィンドウ: にバインドします。
Data_coreつまり、それによって発せられる信号をリッスンし、受信したデータを表示します。
MVCについて読んだことを理解したので、GUIは実際にから受信したメッセージを受け取るべきではありません。コントローラーがそれを行ってからデータをGUIに渡す必要があるData_coreためです。しかし、GUI がこのデータをモデルから直接取得すると、どのような悪いことが起こるのでしょうか?