有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java是clientserver应用程序所必需的MVC吗?

目前正在为爪哇大学做一个小组项目。任务是生成一个基于零配置的分布式系统。我们小组决定使用客户机-服务器体系结构开发一个会议聊天应用程序。由于我加入团队较晚,大部分代码已经完成,他们决定为项目开发一个MVC架构。通过Rails的开发,我有过MVC的经验,并且能够体会到在这种情况下MVC是多么方便。然而,我看不到以我的团队实施的方式使用它的好处

客户机和服务器有两个类,每个类都包含用于发送和接收数据报的方法,以及用于启用发送的字段(如socket)。还有ServerController和ClientController类。这些类中的每一个都只包含一个字段(分别是服务器和客户机),所有方法要么是服务器或客户机的公共方法的包装器,要么是简单的实用工具方法。例如:

public void closeDownServer(){
    server.closeDownServer();
}

对我来说,这似乎完全没有意义,在本例中,MVC的实现只是为了使用设计模式。有人能告诉我用这种方式编写应用程序是否有好处吗?是否需要这些控制器类


共 (3) 个答案

  1. # 1 楼答案

    控制器意味着您可以更改视图绑定到模型的行为(即,用户输入由控制器转换为模型)。在这种情况下,我认为通常不需要控制器,因为将来不需要更改这种行为

    在开发游戏和我需要实现MVC时,我通常也会忽略控制器(它与视图相结合)

  2. # 2 楼答案

    MVC的目的是提供抽象,使以后的更改更易于实现,并使组件解耦。这可能就是为什么你现在认为它毫无意义。。。。因为您的应用程序小而简单。如果它保持这种状态,那么MVC可能只是被添加到您的应用程序中。但是,如果它要发展,MVC可能有助于未来的发展

    考虑一些可能说明您为什么要使用MVC或一个实现,让模型和视图直接相互访问而不使用控制器的例子。p>

    • 如果在“关闭
      时需要执行一些其他操作,该怎么办 与您的服务器类无关的“服务器”?在哪里 你会这样做吗
    • 如果您想将服务器实现更改为第三方软件包,该怎么办?您希望更改控制器代码还是更改 在您的所有视图中都有特定于实现的代码吗
    • 如果更改用于存储应用程序数据的数据库,该怎么办?您是否希望您的UI开发人员担心在中更改代码 前端可以容纳这个吗

    使用MVC可以缓解上述所有情况,这将为您提供适当的关注点和抽象分离,从而使开发和改进/更改代码变得更容易

  3. # 3 楼答案

    有了如此深刻的描述,就不可能说MVC模式是否真的适用于您的设计

    但我可以这样说:有一种模式比MVC模式更重要——简单模式:如果代码中的某些东西完全无用,什么都不做,就把它扔掉!仅仅因为某个权威曾经说过这样的话,就拥有某个阶级是没有意义的

    在实现MVC模型时,我经常看到控制器与视图相结合,尤其是当应用程序很简单时。所以你不是唯一一个提出这个问题的人。稍后,如果出现需求(例如多个不同的视图),您可以分离控制器