2011-03-08 115 views
3

我一直在研究Java Swing项目。它的设计很差。我被赋予了使其设计更好的任务。首先,我想通过遵循MVC模式来分离Java Swing代码和业务代码。有没有Java Swing GUI逻辑和业务逻辑解耦的工具/软件?

手动执行此操作似乎很容易出错。是否有任何解耦GUI层代码(用Java Swing编写)和业务层代码(用核心Java编写)的工具/软件。

+4

它不能与工具来完成,这就是为什么Java体系结构在世界上 – 2011-03-08 16:02:31

+1

存在我不明白的问题。只需使用不同的类。你也可以将它们打包到不同的罐子里。或者你需要什么? – Puce 2011-03-08 16:03:04

+1

我想他想以编程方式将已经写好的摇摆代码分开。如果是这样,手动做这件事似乎对我来说更不容易出错。 – 2011-03-08 16:04:31

回答

3

据我所知,这个问题的答案是“不,没有这样的工具。”

我想冒险说一个人甚至不可能制作这样的工具。问题在于没有简单的方法来区分“业务逻辑”和“GUI”代码。

在我所从事的项目上,我们在设计阶段做出了一致努力,以保持GUI和业务逻辑的分离,但我无法计算不可避免的次数,特别是当一些业务规则驱动GUI应该如何表现时。

我不羡慕你的任务。处理和修改现有代码,特别是您没有创建的代码,容易出错。而MVC编程的整个概念实际上只是考虑如何构建一个程序,而不是一组现有的工具库来使用。

我在Smalltalk的日子里学习了MVC编程,当时它最初是由施乐公司的聪明人发明的,甚至他们无法避免代码的交叉耦合。

2

当输入定义良好并且结构合理时,自动工具可以很好地工作。根据你所描述的内容,你的投入远不止于此。

是的,做这项工作会变得复杂而且很多工作。但这是你需要卷起袖子并潜入其中的东西。在你开始触摸代码之前,请坐下来,确保你完全理解事物现在的布局(以及为什么这是一件坏事)。然后开始计划如何做得更好。

现在您已经制定了应该如何做的计划,开始使用代码并更新遗留代码。

+0

+1“卷起袖子”;我会说同样的事情。 – Jeremy 2011-03-08 16:13:21

1

没有工具,但有技巧。

重构是对代码进行微小更改以改变其体系结构而不改变其功能的一种做法。你可能已经完成了一定程度的重构,但是有时候读一些你知道的主题可以帮助提高你的技能。

许多IDE支持一些简单的重构。 Eclipse和NetBeans在重构支持方面具有不同的优势,并且根据您当前的环境,您可能会发现其中一个更有用。

什么重构不会为你做的是给你一个如何从A点(你的面条代码)到B点(你干净地分离出来的MVC)的路线图。相反,它只会让你成为更好的司机。不幸的是(对所有开发人员来说幸运的是,所有开发人员都很幸运)仍然需要良好的头脑来确定哪些代码段有意去做,以及它们是否更适合放置在模型,视图或控制器中。剩下的就是以这样一种方式剔除依赖关系,即最终可以按顺序向上或向下移动代码,并最终将其推入一个方法,然后可以将其移至相应的类。

祝你好运。

0

我也不知道任何工具。正如其他人在这里指出的那样,我认为这样的工具最终会让程序员变得多余。我们不想那样做,我们。 :-D

但是,手动检查是否实际设法解耦代码不应该复杂。只要确保你的“营业部分”进口无摇摆包:

  • 在文件中查找“摇摆”
  • 移动所有这些文件中的一个包
  • 检查,如果存在有什么“商业逻辑” = >把它拿出来
  • ...