有人可以给我一个基于 MVC 设计模式的 java/jdk 库中的应用程序/框架/工具的示例吗?我最近在一次采访中被问到这个问题。我回答说大部分java swing组件都是基于MVC设计的。但面试官说他正在寻找比这更复杂的东西。谢谢。
6 回答
如果您使用对象作为模型、jsps 作为视图、servlet 作为控制器,则可以将 Java 基础 Java EE 堆栈视为 MVC。
Spring MVC将是基于 MVC 的流行库的另一个示例。
Struts 可能是使用中最大的、最流行的纯 MVC 框架,尽管它正在经历它的时代,而更 AOP 的 SPRING 也已经存在。
正如您所指出的,在谈论 JavaSE 时,MVC 框架是 Swing(或至少是接近它的东西)。我真的不明白他对“更复杂的东西”的意思,但还有其他选项,如 EclipseRCP。
Eclipse 是众所周知的 IDE,但基本上,它是一个构建在框架上的桌面应用程序,每个用户都可以使用它来构建他/她的自定义桌面应用程序,因为它是开源的。它比 Swing“更复杂”(尽管 Swing 足够复杂),因为它们是开箱即用的多层组合。从 OSGI 实现(这是最基本的软件)到顶层,您可以在其中找到视图、编辑器、透视图、命令、附加组件等结构。
一般来说,我们可以说在 EclipseRCP 中间层中,V 是 Eclipse SWT 库(组件),C 是 Eclipse JFace 库,M 是您自己的应用程序的模型。在顶层,我在上一段中提到的所有“复杂”结构(视角、视图、编辑器等)也是 C 的一部分,但处于更高的层次。
对于 JavaSE(不包括 Swing)的 MVC 框架,这是我能想到的最接近的事情。它的最后一个版本(Eclipse E4)已经很好地清理了复杂性,所以我不知道这是否“足够复杂”来回答这个问题。如果您想了解更多信息,请阅读有关 Eclipse E4 的教程。
顺便说一下,使用 Netbeans 平台,您还可以按照 MVC 方法(或至少类似的方法)实现基于桌面的应用程序,并且它基于 Swing。
Apache Struts就是这种框架的一个例子。
我过去也为 mvc 苦苦挣扎,现在我学到了很多,请参阅本教程mvc 简单程序(添加两个数字)
Apache OFBiz,但我不建议将其用于商业用途。