我想知道我应该如何使用MVC模式构建更大的程序? 在网络上,我经常看到一个模型,控制器和视图。
例如,如果我想成为一个可以说话的教练。 在vocable培训师中,我可以添加新的vocable并进行查询。 当然我想制作一个菜单,我可以在这两种模式之间切换。 现在我不知道应该如何用MVC模式设计这个程序。 有人知道一个好的教程或者可以向我解释。 也许有人知道一个小的干净的示例程序或其他东西...... 并且主菜单也应该是模型吗?
对MVC模式本身提出一个问题。 该模型仅包含数据,视图仅定义gui的外观,控制器在模型中显示数据,并根据该知识设置视图的状态,例如添加组合框项。 这是对的吗?
如果有人想知道,我会使用Java。
我认为你看到我真的很困惑。
答案 0 :(得分:3)
通常您创建一个“核心”项目,并将其与您的Web项目分开。
“核心项目”将具有: 业务对象,例如实体和数据访问
“Web项目”将具有:
使用谷歌找到关于MVC的好教程,有很多资源,但我找到了一个: http://leepoint.net/notes-java/GUI/structure/40mvc.html
还有一个提示可以帮助您进行谷歌搜索,有很多框架可以确保,如果您正在关注教程(使用框架),那么您需要下载所有API / jar文件才能够让你的MVC启动并运行。 (您可能已经知道这一点,但我认为我应该分享以防万一你是java和它的新框架)。
答案 1 :(得分:2)
当我创建小型和大型,完整的Java程序时,我应用此方法。如果您考虑如何做事并且可能是一个良好的开端,这种方法可以轻松扩展:
默认
[GUI] 包(查看)
- GUI.java - gui的头,一些gui
零件在这里建造,有些是分开建造的
- PanelFoo.java - gui
的一部分
- PanelBar.java - gui
的另一部分
[控制] 包(控制)
- Monitor.java - 用于并发同步任务,主要是GUI包ActionListeners所调用的方法
- SomeTask.java实现Runnable - 也许是下载线程
- SomeLogicHelper.java - 一些具有一些逻辑的更大方法
[Model] 包(型号),基本建模
- Vehicleish.java
- Carish.java
- Bicycleish.java
- Garageish .java
[GUI]通过其ActionListeners调用Monitor中的方法连接到[Control]。 [GUI]为Monitor提供了一个回调接口,用于调用未直接在[GUI]中完成的更改。
[控制]连接到[模型],它使用事物模型使事情变得简单,它可以协调逻辑和“做事”到[模型]中的对象
答案 2 :(得分:1)
在GUI客户端应用程序中使用MVC与服务器上的Java Web应用程序非常不同。在Java Web Apps中,请求首先命中控制器,然后是Model,然后是View以将其呈现给用户。
在GUI客户端应用程序中,实际上View持有Controller。当事件发生时,那是请求的副本,因此它会命中控制器,然后命中模型和数据访问对象。
虽然这是实现MVC的一种方式。也可能有其他解释和实现。用于GUI客户端应用程序的MVC没有像为Server Web Apps定义的那样明确定义。