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