我希望在客户端服务器应用程序中使用时获得有关MVC设计模式的一些输入。我已经看到了一些这方面的帖子,说通常有很多方法可以实现MVC和Client Server,所以我想知道我实现我的方式是否可接受/合乎逻辑:
服务器类 (控制器)-----------> JDBC CLASS(模型)----------------->数据库
|
|
V
GUI CLASSES (视图)
(抱歉可怕的插图.GUI类来回与服务器交互,服务器来回与JDBC交互,JDBC与数据库交互)。类之间没有其他通信。)
服务器,JDBC和数据库都是服务器端,GUI类是客户端。此时,每次通过客户端上的用户交互需要事务时,建立套接字连接以连接到通过其发送对象的服务器。然后服务器将获取该对象,并根据其参数从JDBC类调用相关方法,然后将结果传递回服务器类,然后服务器类将对象传递回GUI类,然后更新其视图。
此外,我的控制器没有视图实例和在其构造函数中创建的模型实例。当需要一个新帧时,一个GUI类将简单地调用另一个GUI类,并根据它从控制器返回的响应自行更新(我经常看到模型应该更新视图,但在我的情况下,模型会与控制器/服务器类,然后通过套接字与GUI类通信,然后GUI类相应地更新自己)。
我主要担心的是这是否是一个可接受的MVC架构,以及是否可以让服务器类充当模型和视图之间的控制器。
感谢。
答案 0 :(得分:1)
那是完美的,你通过模型来通过控制器查看。我有一个建议,我希望你没有把所有的业务逻辑放在控制器中,在控制器和模型层之间有一个应用服务层,它将从不同的模型进行数据网格化,并将数据返回给控制器,控制器将返回该对象查看。您可以从控制器调用返回的对象作为DTO(数据转换对象)。确保您的控制器非常薄,只是为了控制应用服务/模型层和视图之间的调用。