如何应用具有多个Windows / Dialog的MVC

时间:2013-03-29 07:56:39

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

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

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

我宁愿使用一个包含所有视图的View-package,一个包含所有控制器的Controller包和一个包含所有模型的Model-package?

或者我会为每个Window / Dialog使用一个包并实现许多小型MVC吗?

最后一个问题:MVC是使用多个Windows / Dialogs的正确选择还是另一种模式是更好的解决方案? 这可能取决于应用程序和每个窗口/对话框的功能,但是如果有一般要考虑的事情,那么最好知道:)

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

1 个答案:

答案 0 :(得分:5)

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

例如我会这样做

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