【问题标题】:How to apply MVC with multiple Windows/Dialogs如何将 MVC 与多个窗口/对话框一起应用
【发布时间】:2013-03-19 22:22:31
【问题描述】:

我想使用 MVC 开发一个应用程序。 该应用程序将有多个窗口和对话框(> 30 个窗口/对话框)。 现在的问题是:我如何在这样的应用程序中应用 MVC?

MVC-Tutorials 通常只有一个 Window、一个 Controller 和一个 Model。

我是否更愿意使用一个包含所有视图的视图包、一个包含所有控制器的控制器包和一个包含所有模型的模型包?

或者我会为每个窗口/对话框使用一个包并实现许多小型 MVC?

最后一个问题:MVC 是否适合与多个 Windows/Dialog 一起使用,还是另一种模式是更好的解决方案? 这可能取决于应用程序和每个窗口/对话框的作用,但如果有一般的事情要考虑,很高兴知道:)

编辑:对不起,我忘了,不认为这很重要。问题是关于 Java/Swing 的。但可能想稍后切换到想到的任何东西。我使用 Swing、SWT、GWT 重要吗?

【问题讨论】:

  • 问题是关于??? GWT、Swing 或 SWT
  • @mKorbel,关于设计模式。
  • 如果我使用 Swing、SWT、GWT 重要吗?也许不在 Swing 中创建一堆窗口不是很好的做法,使用 CardLayout 和 pack()
  • @mKorbel,即使我使用 CardLayout 也不重要,因为我不会使用多个 JFrame/JDialog,而是使用多个 JPanel。
  • 我计划使用 JFrame/JDialog,但我肯定会考虑使用 CardLayout,因为它看起来非常好。但是,它并没有回答这个问题,因为我使用多个 JFrame 或多个 JPanel 并不重要。

标签: java model-view-controller design-patterns netbeans


【解决方案1】:

我更喜欢创建包,每个包都包含模型、视图、控制器等,因为它更清晰。在这种情况下,您会看到您的应用程序是以模块化形式创建的。如果您将创建应用程序并为控制器、视图等创建包,您将看不到您的应用程序做了什么,并且很难维护。但这是我自己的看法。

比如我就这样做

com.car.door
    controller.DoorController
    entity.DoorEntity
    view.DoorView

com.car.wheel
    controller.WheelController
    entity.WheelEntity
    view.WheelView

com.car.driver
    controller.DriverController
    entity.DriverEntity
    view.DriverView

com.car.road
    controller.RoadController
    entity.RoadEntity
    view.RoadView

在我看来这是错误的,因为你看不到你的应用程序做了什么并且很难维护

com.car.controller
    controller.DoorController
    controller.WheelController
    controller.DriverController
    controller.RoadController

com.car.entity
    entity.DoorEntity
    entity.WheelEntity
    entity.DriverEntity
    entity.RoadEntity

com.car.view
    view.DoorView
    view.DriverView
    view.WheelView
    view.RoadView

【讨论】:

  • 我喜欢这个答案,因为在我看来它支持一些非常重要的软件开发原则。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多