Java 我应该使用框架吗?

Java 我应该使用框架吗?,java,swing,model-view-controller,frameworks,griffon,Java,Swing,Model View Controller,Frameworks,Griffon,我知道这个问题很模糊,但我会尽量说清楚 我正在启动一个涉及Swing GUI的Java项目。我希望遵循MVC模式,并且可以使用框架中的一些帮助来组织项目的架构。我正在考虑使用,尽管我想其他人可能会这样做 那么,在以下方面使用框架是否是一个好主意: 编程效率:当然,它会得到提高。。。大多数时候。更准确地说,如果这个项目是一个小项目呢?还是一个大的?如果我已经非常熟悉Java和Swing呢?如果我不是呢?如果项目必须由一个对我使用的框架一无所知的人来维护,该怎么办 学习价值:我会仅仅“学习如何使用

我知道这个问题很模糊,但我会尽量说清楚

我正在启动一个涉及Swing GUI的Java项目。我希望遵循MVC模式,并且可以使用框架中的一些帮助来组织项目的架构。我正在考虑使用,尽管我想其他人可能会这样做

那么,在以下方面使用框架是否是一个好主意:

  • 编程效率:当然,它会得到提高。。。大多数时候。更准确地说,如果这个项目是一个小项目呢?还是一个大的?如果我已经非常熟悉Java和Swing呢?如果我不是呢?如果项目必须由一个对我使用的框架一无所知的人来维护,该怎么办

  • 学习价值:我会仅仅“学习如何使用框架”,而不是在不同的环境中学习更多关于Java和Swing的知识吗

  • 专业价值:与更了解“传统”方法的开发人员相比,公司是否更喜欢了解“更多”框架的开发人员(即使他们可能不打算使用这些框架)


考虑到这个问题有多大,我在其他地方发现的信息很少,这是令人惊讶的。这可能看起来很琐碎,但我真的很好奇。

如果您理解MVC模式,那么为环境实现MVC模式应该很容易。首先请注意:

现在来看看基于Swing的环境,您可以通过将其划分为模型-视图-控制器来实现代码。视图是您实际创建用户界面的Swing类。在这样的类中,您应该只通过不同的侦听器捕获用户操作,但不应该实现任何业务逻辑。Controller应该执行业务逻辑,并且可以在需要时使用模型

例如,您正在为登录创建Swing GUI。创建一个LoginView类,您将在其中创建框架、文本字段、按钮等,并根据需要将侦听器附加到不同的控件。现在,每当用户提交登录时,您都应该调用controller来进行凭据验证。凭证可以存储在数据库中,数据库应加载并存储在模型(DAOs)中。控制器应该从视图中获取用户输入,从模型中获取正确的凭证,并且比较逻辑应该在控制器中实现


希望有帮助

我在评估Griffon作为一个框架。我的印象是这个项目正在慢慢消亡。我不知道Groovy是否曾经是主流。现在每个人都喜欢斯卡拉

现在回到你的问题:

  • 大多数框架都希望您遵循标准的开发路径。任何更改/定制都很可能引入难以维护的解决方案(他们随后将称之为体系结构)。选择一个框架,让你可以完成95%的计划。是的,选择一个主流框架
  • Griffon基于Groovy,因此您必须首先掌握Groovy。好的,Groovy是一种JVM语言,如果您对Java还满意,它将极大地帮助您,但所有这些DSL仍然需要一些时间才能在您的头脑中稳定下来
  • 如果您了解任何主流框架,这是一项宝贵的资产。可悲的事实是,框架往往会褪色/消亡,您必须不断寻找新的热门事物。你永远不会停止学习(尽管关键原则无法改变,并且在不同的框架中保持不变)

,Griffon是基于Groovy的,Groovy有一个强的、漂亮的java风格>,也许你会避免很多代码行,但是我们总是需要考虑一些知识和进度等方面。

  • 知识:你的工作效率与你所知道的和如何使用你所知道的有关,如果你对Java感到满意,那么就使用Java,因为,你的目标似乎是使用MVC,正如朱纳德所说,我们也可以用Swing来实现这一点
  • 时间表:如果你现在有时间学习并且真的想学习一个新的框架,现在是时候了,但是你必须按照你的时间表进行,别忘了你需要按时完成这个项目
所以,考虑使用你所知道的,并把新的东西学习到另一个项目。

避免在没有手电筒的情况下在黑暗中潜水


当然,我对狮鹫有偏见,但我会尽量客观:

  • Griffon是JVM的MVC框架/平台。诚然,所选择的编程语言是Groovy,但是也可以使用许多其他语言,请参见指南中的这个示例,其中展示了如何编写纯Java应用程序。如果您安装了特定的插件,则可以使用其他选项
  • 格里芬的哲学是让你的选择保持开放。的确,有时候框架会引导你走特定的道路,但它提供了足够的空间,也就是说,你让它按照自己的曲调跳舞。例如,编写视图通常遵循Groovy SwingBuilder DSL(Swing上的一个微妙的抽象层)进行,但是如果您愿意,您可以下拉到Java层并使用普通Java/Swing进行编写;或者选择NetBeans Matisse、Abeille Froms Designer或任何其他支持Swing的可视化工具
  • 插件是Griffon成功的关键。正如你所看到的,目前有211个插件,还有更多插件
但最终只有一个观点是重要的:你的。我建议你花几个小时和狮鹫在一起,如果到那时你还看不到它带来的价值。。。恐怕我们得更加努力才能把它做得更好


干杯

谢谢你给出了这个实用的答案。恐怕Scala现在比其他任何东西都更具宣传性。无论如何,Griffon也支持Scala(很快就是ScalaFX),所以它是Scala的主流(根据你自己的估计)。@aalmiray来自插件文档:它(Scala)将在Griffon应用程序或src上提供任何源代码之前先编译/