gpt4 book ai didi

java - 如何在服务器/客户端/数据库应用程序中实现 MVC

转载 作者:行者123 更新时间:2023-12-01 14:47:54 26 4
gpt4 key购买 nike

我正在编写一个由 GUI 界面、客户端、服务器和数据库组成的应用程序。

然而,经过无数个小时我仍然没有弄清楚如何组织这一切。

GUI 是由几个相当不同的 swing 组件构建的,因此我考虑为每个组件建立一个单独的模型。

目前信息流是这样的:

  1. 用户在 GUI 中插入一些信息。
  2. GUI 通过给 Controller 一个事件来告诉 Controller 发生了什么事。
  3. Controller 将事件发送到服务器
  4. 服务器评估事件并向数据库发送适当的查询。
  5. 然后,数据库的结果会附加到事件,并发回客户端。
  6. Controller 接收事件并使用新信息更新相应的模型
  7. 然后模型会更新相应的 View 。

一种可能的情况是用户通过 GUI 搜索条目并返回结果。

这个架构听起来合理吗?

所有不同的 View 都应该有自己的模型吗?如果是,他们也应该有自己的 Controller 吗?如果不是,那又怎样?

我考虑过将整个模型发送到服务器,并让服务器处理模型中的信息,然后将其发送回客户端。当客户端收到它时, Controller 确保新的模型信息已附加到 View 。此解决方案消除了对单独事件类的需要,但这样做似乎并不正确。

我想我要问的是遵循 MVC 模式组织服务器/客户端/数据库应用程序的最佳方式是什么?

最佳答案

最好的方法是将客户端、服务器和数据库分开。

我的意思是,第一步是知道必须在客户端中做什么、在服务器中做什么以及在数据库中做什么:

数据库:

数据库实际上只是一个数据库,因此它无能为力

服务器:

在服务器中,您应该执行服务器上可能发生的所有操作:访问数据库、访问文件……

客户:

客户端将完成剩下的工作。这里你需要区分“显示数据”;这将是“ View ”和管理数据;那将是 Controller 。为了提供具有功能的 gui,您可以使用“ Controller ”,因此最终 MVC 模型仍保留在客户端内

因此我认为你的想法并不像你想象的那么糟糕。我正在开发一个类似的项目。我们正在按照我描述的方式工作,我可以确保一切看起来都非常好。一切都是分开的。服务器和客户端可以更换,而无需更改对方的某些内容。如果我们更改数据库,则只有服务器会注意到它,如果我们更改 gui 库(swt、awt、swing...),则只有客户端会注意到它。服务器和客户端都可以运行在不同的环境中,而他们都没有注意到这一点。

所以,如果我是你,我就会按照你说的去做。尝试一下,您会发现它运行得非常完美。正如我所说,我或多或少遵循相同的工作流程,并且我只能说好的事情。

关于java - 如何在服务器/客户端/数据库应用程序中实现 MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15233409/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com