java是clientserver应用程序所必需的MVC吗?
目前正在为爪哇大学做一个小组项目。任务是生成一个基于零配置的分布式系统。我们小组决定使用客户机-服务器体系结构开发一个会议聊天应用程序。由于我加入团队较晚,大部分代码已经完成,他们决定为项目开发一个MVC架构。通过Rails的开发,我有过MVC的经验,并且能够体会到在这种情况下MVC是多么方便。然而,我看不到以我的团队实施的方式使用它的好处
客户机和服务器有两个类,每个类都包含用于发送和接收数据报的方法,以及用于启用发送的字段(如socket)。还有ServerController和ClientController类。这些类中的每一个都只包含一个字段(分别是服务器和客户机),所有方法要么是服务器或客户机的公共方法的包装器,要么是简单的实用工具方法。例如:
public void closeDownServer(){
server.closeDownServer();
}
对我来说,这似乎完全没有意义,在本例中,MVC的实现只是为了使用设计模式。有人能告诉我用这种方式编写应用程序是否有好处吗?是否需要这些控制器类
# 1 楼答案
控制器意味着您可以更改视图绑定到模型的行为(即,用户输入由控制器转换为模型)。在这种情况下,我认为通常不需要控制器,因为将来不需要更改这种行为
在开发游戏和我需要实现MVC时,我通常也会忽略控制器(它与视图相结合)
# 2 楼答案
MVC的目的是提供抽象,使以后的更改更易于实现,并使组件解耦。这可能就是为什么你现在认为它毫无意义。。。。因为您的应用程序小而简单。如果它保持这种状态,那么MVC可能只是被添加到您的应用程序中。但是,如果它要发展,MVC可能有助于未来的发展
考虑一些可能说明您为什么要使用MVC或一个实现,让模型和视图直接相互访问而不使用控制器的例子。p>
时需要执行一些其他操作,该怎么办 与您的服务器类无关的“服务器”?在哪里 你会这样做吗李>
使用MVC可以缓解上述所有情况,这将为您提供适当的关注点和抽象分离,从而使开发和改进/更改代码变得更容易
# 3 楼答案
有了如此深刻的描述,就不可能说MVC模式是否真的适用于您的设计
但我可以这样说:有一种模式比MVC模式更重要——简单模式:如果代码中的某些东西完全无用,什么都不做,就把它扔掉!仅仅因为某个权威曾经说过这样的话,就拥有某个阶级是没有意义的
在实现MVC模型时,我经常看到控制器与视图相结合,尤其是当应用程序很简单时。所以你不是唯一一个提出这个问题的人。稍后,如果出现需求(例如多个不同的视图),您可以分离控制器