-3

我正在创建一个用于显示自动迷宫求解器的模拟,其中几乎没有用户输入。

使用 MVC 架构并用 Java 实现。View 是通过 Controller 从 Model 接收和提取数据。

就目前而言,我有两个选项可用于更新模型逻辑并依次更新视图:

  • 控制器实现 Runnable
  • 控制器创建一个线程:

    Thread runControl = new Thread(this);
    runControl.start();
    
  • 然后线程可以在Controller中执行run(),更新Model逻辑并将新数据传递给View

然而,这不是我的首选方法,因为我希望模型运行它自己的逻辑。我会比较喜欢:

  • 模型实现 Runnable
  • 模型包含 run() 中的所有逻辑
  • 控制器为模型创建一个线程并执行模型

我在这一点上迷路了。然后模型可以相应地更新自己的逻辑,但是当模型线程运行时,如何通知控制器模型数据的变化,然后检索该数据(仍在被操作/更新),然后通知看法?

4

1 回答 1

1

控制器和视图紧密地联系在一起。前者是服务器端,后者是客户端。

我认为 MVC 需要一个如下所示的更新:

View->Controller->Service->Persistence

这些是层。模型在层之间运行。

服务满足用例。它们是放置业务逻辑的合适位置。当然,Model 对象应该知道如何管理自己的状态,但是编组 Model 和 Persistence 对象来完成用例属于 Service。您需要模型之外的东西,因为模型可能不知道使用它们的所有上下文。

控制器接受、验证和绑定请求;它确定满足请求所需的服务;它序列化响应并确定下一个视图。

服务了解用例和工作单元。

于 2012-10-19T11:48:08.877 回答