我已经阅读了很多关于 MVC 的出版物,但我仍然无法清楚地理解为什么我们需要“控制器”。
我通常在客户端-服务器模型中编写应用程序:
服务器包含所有业务逻辑,它对 gui 一无所知。它完成主要工作,并且尽可能便携。
客户端是一个 GUI,它绑定到服务器,与用户交互,将命令从用户发送到服务器。
我喜欢这种架构,但我不明白为什么人们真的需要在客户端和服务器之间再增加一个媒介,这似乎是控制器?
UPD:简单示例:假设我们需要编写一些数据记录器。数据来自 COM 端口,通过某种协议进行编码。需要在一个简单的日志窗口中显示收到的消息。
我将如何做到:
服务器包含以下项目:
Data_receiver
: 实际上是从 COM 端口接收原始数据,但它是接口,所以我们可以创建另一个类来接收来自任何其他来源的数据;Data_decoder
:获取原始数据并返回解码后的消息,它也是接口,因此我们可以轻松更改编码协议;Data_core
Data_receiver
: 使用and的实例,Data_decoder
向客户端发出信号。
客户端包含以下项目:
- Appl核心:创建
Data_receiver
(连接到COM端口的)实例,Data_decoder
和Data_core
(引用Data_receiver
和Data_decoder
实例),还创建GUI简单日志窗口(引用Data_core
); - GUI简单日志窗口:绑定到
Data_core
,即监听它发出的信号,并显示接收到的数据。
正如我所了解的有关 MVC 的内容,GUI 实际上不应该Data_core
从. 但是如果 GUI 直接从模型中获取这些数据会发生什么坏事呢?