【问题标题】:Client Server MVC Architecture客户端服务器 MVC 架构
【发布时间】:2015-07-21 10:25:22
【问题描述】:

我希望在客户端服务器应用程序中使用 MVC 设计模式时获得一些输入。我看过一些关于这个的帖子,说通常有很多方法可以实现 MVC 和客户端服务器,所以我想知道我实现的方式是否可以接受/合乎逻辑:

服务器类 (控制器)-----------> JDBC CLASS(模型)-----> 数据库

|
|
V 

GUI 类 (查看)

(对不起,糟糕的插图。GUI 类与服务器来回交互,服务器与 JDBC 来回交互,JDBC 与数据库交互)。类之间没有其他通信。)

Server、JDBC 和 Database 都是服务器端,GUI 类是客户端。此时,客户端每次需要通过用户交互进行事务处理时,都会建立一个socket连接,连接到发送对象的服务器。然后服务器将获取对象,并根据其参数从 JDBC 类调用相关方法,然后将结果传递回服务器类,然后服务器类将对象传递回 GUI 类,然后更新其视图。

另外,我的控制器没有视图实例和在其构造函数中创建的模型实例。当需要一个新框架时,一个 GUI 类将简单地调用另一个 GUI 类,它会根据从控制器返回的响应进行自我更新(我经常看到模型应该更新视图,但是在我的情况下,模型与控制器/服务器类,然后通过套接字与 GUI 类通信,然后 GUI 类相应地更新自己)。

我主要关心的是这是否是一个可接受的 MVC 架构,以及是否可以让服务器类充当模型和视图之间的控制器。

谢谢。

【问题讨论】:

    标签: user-interface model-view-controller client-server


    【解决方案1】:

    太好了,您正在通过控制器将模型传递给视图。我有一个建议,我希望你不要把所有的业务逻辑都放在控制器中,在控制器和模型层之间有一个应用服务层,它将从不同的模型进行数据网格并将数据返回给控制器,控制器将返回该对象查看。您可以将控制器返回的对象称为 DTO(数据转换对象)。确保您的控制器非常薄,仅用于控制应用服务/模型层和视图之间的调用。

    【讨论】:

    • 非常感谢,我的大部分业务逻辑都在模型中。在控制器中,我只是根据从视图接收到的请求从模型中调用各种方法。我担心我的视图类中有相当多的代码用于根据控制器的响应生成 JComponents,但是除了从视图类中执行更新视图之外,我看不到任何其他方法来更新视图,因为需要更新的 JComponent 都是该类的本地组件。
    猜你喜欢
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多