Java 复杂GUI程序中的MVC模式

Java 复杂GUI程序中的MVC模式,java,model-view-controller,Java,Model View Controller,我想知道,我应该如何用MVC模式构建一个更大的程序? 在网络上,我通常只看到一个模型、控制器和视图 例如,如果我想做一个发声教练。 在vocable trainer中,我可以添加新的vocable并进行查询。 当然,我想做一个菜单,我可以在这两种模式之间切换。 现在我不知道该如何用MVC模式设计这个程序。 是否有人知道一个好的教程或可以解释给我。 也许有人知道一个小的干净的例子程序或其他东西。。。 主菜单也应该是一个模型吗 还有一个问题是MVC模式本身。 模型仅包含数据,视图仅定义gui的外观,

我想知道,我应该如何用MVC模式构建一个更大的程序? 在网络上,我通常只看到一个模型、控制器和视图

例如,如果我想做一个发声教练。 在vocable trainer中,我可以添加新的vocable并进行查询。 当然,我想做一个菜单,我可以在这两种模式之间切换。 现在我不知道该如何用MVC模式设计这个程序。 是否有人知道一个好的教程或可以解释给我。 也许有人知道一个小的干净的例子程序或其他东西。。。 主菜单也应该是一个模型吗

还有一个问题是MVC模式本身。 模型仅包含数据,视图仅定义gui的外观,控制器在模型中显示数据,并使用该知识设置视图的状态,例如添加组合框项。 对吗

如果有人想知道,我使用Java


我想你看到了,我真的很困惑。

在GUI客户端应用程序中使用MVC与服务器上的Java Web应用程序非常不同。在Java Web应用程序中,请求首先点击控制器,然后点击模型,然后点击视图,将其返回给用户

在GUI客户端应用程序中,视图实际上拥有控制器。当事件发生时,这是请求的副本,因此它会命中控制器,然后命中模型和数据访问对象

虽然这是实现MVC的一种方法。也可能有其他解释和实现。GUI客户端应用程序的MVC定义没有服务器Web应用程序的MVC定义那么明确

通常创建一个“核心”项目,并将其与web项目分开

“核心项目”将包括: 业务对象,如实体和数据访问

“网络项目”将包括:

  • 控制器:将请求从UI路由到核心逻辑
  • 视图:侧重于以HTML格式显示数据
  • 模型:将简单的核心业务对象转换为更简单的结构 设计用于支持特定视图
使用google查找有关MVC的好教程,有很多资源,但我为您找到了一个:


还有一个提示可以帮助您进行谷歌搜索,有很多框架。请确保,如果您正在学习教程(带有框架),那么您需要下载所有API/jar文件,以便能够启动并运行MVC。(您可能已经知道这一点,但我认为我应该与您分享,以防您不熟悉java及其框架)

我在创建小型和大型完整Java程序时都会应用此方法。如果您考虑如何做事,这种方法可以很容易地扩展,这可能是一个良好的开端:

违约

  • java—只是启动东西的主要方法
[GUI]包(视图)
-java-GUI的头,一些GUI 零件在此处制造,有些零件单独制造
-PanelFoo.java-gui的一部分
-PanelBar.java-gui的另一部分

[控制]包装(控制)
-Monitor.java-用于并发同步任务,主要是GUI包ActionListeners调用的方法
-SomeTask.java实现可运行-可能是下载线程
-SomeLogicHelper.java-一些更大的方法和一些逻辑

[Model]套装(模型),基本造型
-Vehicleish.java
-Carish.java
-Bicycleish.java
-Garageish.java

[GUI]通过其ActionListeners调用监视器中的方法连接到[Control]。 [GUI]为监视器提供了一个回调接口,用于调用[GUI]中未直接完成的更改

[Control]连接到[Model],它使用事物的模型使事情变得简单,它可以协调逻辑并从[Model]向对象“做事”