有没有人使用过GUTS(GUICE UTILITIES TOOLS SWING)?

时间:2010-12-17 12:02:53

标签: java swing refactoring dependency-injection

我们有一个庞大的Java Swing应用程序。现在我们想要从所有组件中删除耦合,以便我们可以重用它们。

我遇到了一个名为GUTS的工具,该工具基于GUICE for Swing应用程序。有人用过吗?

http://kenai.com/projects/guts/pages/Home

如果我使用此工具来解耦组件代码和更易于管理的Swing应用程序会更好吗?或者其他一些你可能知道的工具。

还有一个工具可以简化GUI构建工作,但不可能减少组件之间的耦合。

http://code.google.com/p/javabuilders/

那么你认为哪个应该更好呢?如果您有任何人遇到这种设计困境,请提供一些见解。

提前致谢。

1 个答案:

答案 0 :(得分:1)

鉴于你的Swing应用程序是“巨大的”,我还假设你和其他几个人一起工作,所以如果是这样的话,你必须记住他们需要时间来学习其中一个2。

使用GUTS项目,一切都是(几乎)纯Java,因此没有新的语言需要学习,但是你将为项目引入新的外部依赖项,并且还要求人们改变编码风格以使用新的库。此外,依赖注入虽然现在更常见,但仍然是添加到项目中的额外复杂层。

我非常谦虚地认为,如果您和您的团队对Swing以及GUI创建的一般良好实践有足够的了解,您可能会发现重构现有代码,在需要时编写自定义实用程序和组件更安全,更容易。您可以立即开始这样做,而无需花时间学习新的东西,结果将是标准的,并且在将来很容易维护。

JavaBuilders是一个非常有趣和有前途的解决方案,它完全符合您的要求 - 布局与业务逻辑的分离。但是,您必须牺牲编译时的正确性,并且您的开发人员需要学习YAML(以及JavaBuilder中专门使用的YAML的专有样式)。此外,正如文档所述,还没有代码完成可用,因此可能很难开始。此外,如果您使用标准组件,或者您的所有自定义组件与标准组件分离,JB将仅100%有用。要使用自定义组件,需要进行一些预配置。

如果您自己或在一个小团队中工作,愿意花一两个星期的时间来学习它,然后从头开始重写应用程序的每个部分,那么您可能会走这条路。