【问题标题】:Is there any tool/software that decouples Java Swing GUI logic and business logic?是否有任何工具/软件可以将 Java Swing GUI 逻辑和业务逻辑解耦?
【发布时间】:2011-03-08 16:00:29
【问题描述】:

我一直致力于 Java Swing 项目。它的设计很差。我被赋予了改进其设计的任务。主要是我想我会按照 MVC 模式将 Java Swing 代码和业务代码解耦。

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

【问题讨论】:

  • 工具做不到,这就是java架构存在于世间的原因
  • 我不明白这个问题。只需使用不同的类。您还可以将它们打包到不同的 jar 中。或者你到底需要什么?
  • 我认为他想以编程方式解耦已经编写好的 swing 代码。如果是这样,手动操作对我来说似乎不太容易出错。
  • @Puce 有太多的类,设计业务代码很差,gui 代码都在一个类中。如此紧密的耦合。手动更改以使其更好是一场噩梦。所以我一直在寻找一些工具来帮助解决这个问题。
  • 您正在寻求一种能够神奇地重新构建现有代码的工具。这类工具永远不存在。

标签: java swing


【解决方案1】:

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

我会大胆猜测,有人甚至不可能制造出这样的工具。问题是没有简单的方法来区分“业务逻辑”和“GUI”代码。

在我参与的项目中,我们在设计阶段齐心协力将 GUI 和业务逻辑分开,但我无法计算不可避免的交叉次数,尤其是当某些业务规则驱动 GUI 的行为方式时。

我不羡慕你的任务。处理和修改现有代码,尤其是您未创建的代码,很容易出错。 MVC 编程的整个概念实际上只是一种思考如何构建程序的方式,而不是一组现有的工具库。

我在 Smalltalk 时代学习了 MVC 编程,当时它最初是由 Xerox Parc 的聪明人发明的,即使他们也无法避免一些代码的交叉耦合。

【讨论】:

    【解决方案2】:

    当输入定义良好且结构良好时,自动化工具会很好地工作。根据您的描述,您的输入远非如此。

    是的,做这项工作会很复杂,而且工作量很大。但这是你只需要卷起袖子潜入其中的事情。在您开始接触代码之前,请坐下来确保您完全了解现在的布局方式(以及为什么这是一件坏事)。然后开始计划如何做得更好。

    现在您已经制定了计划,开始使用代码并更新旧代码。

    【讨论】:

    • +1 表示“卷起袖子”;我也想说同样的话。
    【解决方案3】:

    没有工具,但有技巧。

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

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

    重构不会为您提供一个路线图,说明如何从 A 点(您的意大​​利面条代码)到 B 点(您的干净分离的 MVC)。相反,它只会让你成为沿途更好的司机。不幸的是,(或者对于所有开发人员来说幸运的是)仍然需要聪明的头脑来弄清楚代码的哪些部分打算做什么,以及它们是否更适合放置在模型、视图或控制器中。剩下的只是梳理依赖关系,以便您最终可以在序列中向上或向下移动代码,并最终将其推送到一个方法中,然后该方法可以移动到适当的类中。

    祝你好运。

    【讨论】:

      【解决方案4】:

      我也不知道任何工具。正如这里的其他人所指出的那样,我认为这些工具最终会使程序员变得多余。我们不希望这样,是吗。 :-D

      但是,手动检查您是否真的设法解耦代码应该不会太复杂。只需确保您的“业务部分”不导入任何摆动包:

      • 在“swing”文件中查找
      • 将所有这些文件移动到一个包中
      • 检查里面是否有“业务逻辑”=>取出来
      • ...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-30
        • 1970-01-01
        • 1970-01-01
        • 2023-04-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多