【问题标题】:Converting to Java Model-View-Controller pattern [closed]转换为 Java 模型-视图-控制器模式 [关闭]
【发布时间】:2014-07-03 00:54:42
【问题描述】:

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

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

我真的迷路了,因为我不知道该放什么。

感谢您的帮助!!

【问题讨论】:

  • 你并不孤单。大多数人不知道如何做到这一点。
  • 尝试“推高”每个类的共同元素——例如菜单,添加患者。等等。尝试创建精益模型、智能控制器和哑视图。
  • (了解 MVC 只是一个理论上的理想,很少实际实现,并且经常尝试实现它会导致一些非常扭曲的代码。如果有必要通过您的课程,请口头上说该方案,但不要不要嫁给它。)
  • OP,请考虑接受对您最有帮助的答案。

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


【解决方案1】:

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

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

因此,举个例子,AddPatients 显示可能会变成一个特定的 View 和一些 Controller 逻辑,这将在 Model 中使用某种addPatient() 方法。

【讨论】:

    【解决方案2】:

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

    我们为 webapps 做的方式是:

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

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

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

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

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

    然后您只需将您的业务逻辑封装到您的控制器委托给的类中(因此它不会绑定到您的 UI)。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 2011-12-31
      • 1970-01-01
      • 2013-01-01
      相关资源
      最近更新 更多