【问题标题】:Java Hibernate and servlets with Adobe Flex + Model View Controller Pattern?带有 Adobe Flex + 模型视图控制器模式的 Java Hibernate 和 servlet?
【发布时间】:2010-08-30 18:26:22
【问题描述】:
我正在为一个项目准备一份文件。该项目的后端是Java开发的,前端是adobe flex。
我不确定以 Model-View-Controller 方式描述项目的正确方式。
对于模型层:使用 Hibernate Java bean 来实现所有的业务逻辑和持久性?
对于 View 层:使用 Adobe flex 向 Controller 层发送 post 或 get 请求,并以 XML 格式获取响应。
对于控制器层:使用 Java servlet 处理来自 Flex 客户端的请求?
谢谢
【问题讨论】:
标签:
java
apache-flex
hibernate
servlets
【解决方案1】:
Hibernate - 型号
Flex - 查看
Servlets - 控制器
complete nice article 的简要介绍如下:
- 模型,是数据。操作内部状态并在内部状态更改时触发事件。
- 视图,模型数据的可视化表示(屏幕上的控件)
- 控制器,负责解释用户对视图的操作并对模型进行更改。 (通常是 flex 中的事件处理程序)
实际上,这三层之间没有 100% 的界限。让它们完全解耦并不是那么容易,通常我们最终会做出一些权衡。
控制器将始终知道视图和控制器的视图。控制器也知道模型。最后我可以说,模型是 MVC 中唯一可以“100% 解耦”的部分。
【解决方案2】:
您应该查看 Adobe 为您的 Flex 应用程序赞助的 Cairngorm Framework。可以说它本身就是整个 MVC 设计模式。 Hibernate、Servlet 和您的 Java Bean 是您的应用层。还有其他 Flex MVC 框架。查看其他 stackoverflow 文章以获取替代方案:Flex MVC Frameworks
Cairngorm 的基本概念是这样的:
-
Model:一个单例ModelLocator,用于存储 Model 需要从中读取的数据。
-
视图:您的 MXML/AS 文件,用于呈现上述模型。
-
Controller:将业务事件注册到Command 的单例FrontController。 命令 表示具有相关逻辑/处理的特定业务逻辑任务。这通常是您的 API 调用转到应用程序层以执行逻辑、获取数据等的地方。当 Command 完成后,Model 会更新,您的视图将反映模型中的那些变化。
我可以详细介绍,但所有这些信息在上面链接的 Cairngorm 文章中都有很好的描述。