目前正在为Java大学做一个小组项目。该任务是生成基于零配置的分布式系统。我们小组决定使用客户端 - 服务器架构的会议聊天应用程序。当我最近加入该组时,大部分代码已经完成,他们决定为该项目开发MVC架构。我通过Rails开发自己体验MVC,并且可以理解它在这种情况下是多么方便。但是,我无法按照我的小组实施的方式看到使用它的好处。
Client和Server有两个类,每个类包含用于发送和接收数据报的方法,以及用于启用发送的套接字等字段。还有ServerController和ClientController类。这些类中的每一个只包含一个字段(分别是服务器和客户端),并且所有方法都是服务器或客户端的公共方法的包装器,或简单的实用程序方法。一个例子是:
public void closeDownServer(){
server.closeDownServer();
}
对我而言,这似乎完全没有意义,并且在这种情况下,MVC仅仅是为了使用设计模式而实现的。任何人都可以告诉我,以这种方式编写应用程序是否有任何好处?是否需要这些控制器类?
答案 0 :(得分:2)
MVC的目的是提供抽象,使以后的更改更容易实现,并使组件分离。这可能就是为什么你现在认为它毫无意义....因为你的应用程序很小而且很简单。如果它会保持这种状态,那么MVC可能会被添加到您的应用程序中。但如果它会增长,MVC可能对未来的发展有所帮助。
考虑一些可能说明您希望使用MVC的实例,或者在没有控制器的情况下让模型和视图直接相互访问的实现。
通过使用MVC可以减轻上述所有情况,这将使您能够正确分离关注点和抽象,从而使开发和改进/更改代码变得更加容易。
答案 1 :(得分:1)
如果描述得很深,就不可能说MVC模式是否真的对你的设计有效。
但是我可以这样说:有一种模式比MVC模式更重要 - 模式简单:如果你的代码中的某些内容完全没用,什么都不做,那就得到它!因为某些权威曾经这样说,所以没有必要上课。
在实现MVC模型时,我经常看到控制器与视图结合,特别是当应用程序很简单时。所以你并不是唯一提出这个问题的人。之后,如果需求出现(例如,多个不同的视图),您可以分离控制器。
答案 2 :(得分:1)
控制器意味着您可以更改视图绑定到模型的行为(即,用户输入由控制器转换为模型)。在这种情况下,我会说通常不需要控制器,因为将来你不需要改变这种行为。
在开发游戏时我需要实现MVC,我通常也会忽略控制器(它与视图结合)。