0

我经常遇到这个问题。想不出办法来面对这种情况。现在我得到了这个很棒的论坛!我相信这里的专家会帮助我解决这个问题。

这不是关于特定代码段之类的问题。我有能力(我认为)用java做一些高级项目。这意味着,简单地说,我可以完成项目以给出确切的结果。

但问题是,虽然我可以完成它,但我对班级等的管理并不满意。实际上我不知道如何妥善管理它。考虑到我目前正在从事的项目,我将解释一下(我不是专业的编码员,这将是为了我的自学)。

我正在开发一个数据库管理系统(MySQL + Java)。我希望在那里实现几个功能。流程大致是这样的。

1. Login
2. Main window

主窗口将是这样的。

在此处输入图像描述

在左侧面板中,您可以选择需要执行的操作。

Eg.

*. Add some entries to the database

*. Search database

*. Other..(will be add later)

有人可以告诉我如何管理所有这些东西,两个框架和几个面板。

我所做的是这样的。

我写了一个managerClass具有主要方法的。然后它会loginFrame先调用。验证后,loginFrame调用 , 中的方法managerClass进行加载mainFrame。但是我managerClass在所有框架、面板等中都保留了对 的引用,因为我将所有必需的信息保存在 中managerClass,例如用户名等。

但是当修改和调试时,事情变得非常非常困难。因为我没有按照任何特定的规则做事。我将不得不修改几乎所有的类来进行轻微的修改。我虽然有很多和大海

4

1 回答 1

1

根据我对您的应用程序的了解,您的主要问题是组件与应用程序的不同层(表示、交互控制、域逻辑)之间的耦合。我建议使用两种可能有帮助的设计模式(或样式):

  1. Model-View-Presenter:将模型/域逻辑与表示(视图)与控制用户交互的逻辑分开。我最近在一个大型应用程序中使用了它,我发现它确实有助于以一种干净的方式分离关注点,并使测试变得更加简单。请不要将其与 Model-View-Controller 模型混淆,后者很接近,但存在很多问题。Martin Fowler有一篇很好的文章描述了这两种模式
  2. 在组件之间采用基于事件的交互。与其让 Login 框架调用 Manager 类,不如让它触发一个事件(“用户认证”),该事件由感兴趣的组件处理。例如,您可能在主窗口中有一个小的用户帐户详细信息面板,该面板在触发此事件之前不会显示。不幸的是,我不知道任何纯 Java 的事件框架(我怀疑如果你正在使用它进行开发)我使用的是 Google Web Toolkit。
于 2012-08-03T06:01:46.330 回答