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

时间:2014-07-03 00:54:43

标签: java user-interface model-view-controller

我有一个"添加&显示" java程序,根据程序显示的每个屏幕组织成类(例如菜单,DisplayPatients,AddPatients等)。

现在我需要将其转换为ym学校项目的MVC模式。虽然我在理论上理解MVC的作用,但我不知道如何将我的7个当前类分为4个类:Main,Model,View和Controller。

我真的输了,因为我不知道该把它放在哪里。

感谢您的帮助!!

2 个答案:

答案 0 :(得分:0)

我实际上只是从Web应用程序的角度处理MVC(Spring MVC / Struts)。

我们为webapps做的方式是:

模型:与您的应用程序的问题域有关。 I.E,独立于用户界面。

查看:JSP,html,Velocity模板,Jasper报告,“呈现”模型的任何内容

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

将视图分开非常简单。对于Java EE Web应用程序,这些可能是JSP。这个OPPOSITE将使用一个呈现html的servlet(JSP实际上也是一个servlet,但你明白了)。对于Android应用程序,它们可能是您的XML视图布局。

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

然后,您只需将业务逻辑封装到控制器委派的类中(因此它与您的UI无关)。

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

答案 1 :(得分:0)

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

在你的程序中,看起来你应该有不同的视图,所有视图都为每个"显示"实现了一个通用的界面。模型应该处理像患者列表这样的数据,并且Controller应该对从视图中获得的用户输入进行操作(即,控制器应该处理通常被称为"业务逻辑"的程序)

因此,举一个例子,AddPatients显示可能会转换为特定的View和一些Controller逻辑,它们会在模型中使用某种addPatient()方法。

相关问题