我正在创建一个用于显示自动迷宫解算器的模拟,其中几乎没有用户输入。
使用MVC架构并以Java实现。视图是通过Controller从模型接收和绘制数据。
目前,我有两个选项可用于更新模型逻辑,然后更新视图:
Controller创建一个线程:
Thread runControl = new Thread(this);
runControl.start();
然后线程可以在Controller中执行run(),它会更新Model逻辑并将新数据传递给View
然而,这不是我首选的方法,因为我很快就会让模型运行自己的逻辑。我更喜欢:
我现在迷路了。然后模型可以相应地更新自己的逻辑,但是当模型线程运行时,如何通知控制器模型数据的变化,然后检索该数据(仍然被操作/更新)然后通知查看?
答案 0 :(得分:1)
控制器和视图紧密相连。前者是服务器端,后者是客户端。
我认为MVC需要一个如下所示的更新:
View->Controller->Service->Persistence
这些是图层。模型在图层之间运行。
服务满足用例。它们是放置业务逻辑的适当位置。当然Model对象应该知道如何管理自己的状态,但是编组Model和Persistence对象来完成用例属于Service。你需要Model之外的东西,因为Models可能不知道它们被使用的所有上下文。
Controller接受,验证和绑定请求;它确定了满足请求所需的服务;它序列化响应并确定下一个视图。
服务部门知道用例和工作单元。