Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
转换为Java模型-视图-控制器模式_Java_User Interface_Model View Controller - Fatal编程技术网

转换为Java模型-视图-控制器模式

转换为Java模型-视图-控制器模式,java,user-interface,model-view-controller,Java,User Interface,Model View Controller,我有一个“添加和显示”java程序,根据程序显示的每个屏幕(例如菜单、显示患者、添加患者等)组织成类 现在我需要将其转换为ym学校项目的MVC模式。虽然我在理论上理解MVC的功能,但我不知道如何将当前的7个类划分为4个类:主类、模型类、视图类和控制器类 我真的迷路了,因为我不知道该把什么放在哪里 谢谢你的帮助 我实际上只从web应用程序的角度(SpringMVC/Struts)讨论过MVC 我们为网络应用程序提供的方式是: 模型:与应用程序的问题域有关的任何内容。也就是说,独立于用户界面 视图:

我有一个“添加和显示”java程序,根据程序显示的每个屏幕(例如菜单、显示患者、添加患者等)组织成类

现在我需要将其转换为ym学校项目的MVC模式。虽然我在理论上理解MVC的功能,但我不知道如何将当前的7个类划分为4个类:主类、模型类、视图类和控制器类

我真的迷路了,因为我不知道该把什么放在哪里


谢谢你的帮助

我实际上只从web应用程序的角度(SpringMVC/Struts)讨论过MVC

我们为网络应用程序提供的方式是:

模型:与应用程序的问题域有关的任何内容。也就是说,独立于用户界面

视图:JSP、html、Velocity模板、Jasper报告、任何“呈现”模型的内容

控制器:处理UI命令并向模型发送命令以更新或检索状态。这可能包括委托给其他人的“前端”控制器,如DispatcherServlet或ActionServlet

分离视图非常简单。对于JavaEEWebapps,这些可以是JSP。与此相反的是使用一个呈现html的servlet(JSP实际上也是一个servlet,但您明白了这一点)。对于Android应用程序,它们可能是您的XML视图布局

拥有视图后,可以创建一个控制器,它是“业务”类和视图本身之间的一个层。例如,它可以响应web请求或响应单击事件

然后,您只需将业务逻辑封装到控制器委托的类中(这样它就不会绑定到UI)


这里使用的另一种模式是“UIbean”的概念。在webapp世界中,这将是一个表单bean。这里,控制器通过javabean处理视图,javabean包含视图可以看到/更新的值。控制器验证此表单并将其转换为模型处理的请求。同样,这用于将UI与业务逻辑分离。

模型-视图-控制器设计模式的主要优点之一是,与状态或策略模式一样,您可以交换具有相同接口的类以获得不同的行为。使用MVC,这通常会变成交换不同的模型、视图或控制器,同时保留其他两个组件

在您的程序中,看起来您应该有不同的视图,所有视图都实现了一个公共接口,用于每个“显示”。模型应处理患者列表等数据,控制器应根据从视图中获得的用户输入进行操作(即控制器应处理通常称为程序的“业务逻辑”)


因此,举一个例子,AddPatients显示可能会变成一个特定的视图和一些控制器逻辑,在模型中使用某种
addPatient()
方法。

您并不孤单。大多数人都不知道该怎么做。试着“推高”每个类的常用元素——例如菜单、添加患者。等等。尝试创建精益模型、智能控制器和愚蠢的视图。(要知道,MVC只是一个理论上的理想,很少实际实现,而且经常试图实现它会导致一些严重扭曲的代码。如果有必要通过你的课程,就口头上支持该计划,但不要与之结婚。)OP,请考虑接受对你最有帮助的答案。