【问题标题】:How to manage a proper structure in a java project如何在 java 项目中管理适当的结构
【发布时间】:2012-08-01 03:44:59
【问题描述】:

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

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

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

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

1. Login
2. Main window

主窗口将是这样的。

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

Eg.

*. Add some entries to the database

*. Search database

*. Other..(will be add later)

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

我所做的是这样的。

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

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

【问题讨论】:

    标签: java database-design project-management


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的指导。我还没有在我的项目中采用任何这些模式(我知道有这样的)。希望是时候去做这样的事了。我发现你的两个链接很有帮助。我还没有完全通过它们,但似乎他们会对我的问题有一些答案。感谢你的付出。稍后我会给出一些反馈..
    • 我发现 [this thread][stackoverflow.com/questions/2105121/… 非常非常很有用。顺便说一句,谢谢@pablochacin,我会接受你的答案..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 2013-06-17
    • 2011-06-26
    • 2019-10-03
    • 1970-01-01
    • 2013-07-11
    • 2022-12-17
    相关资源
    最近更新 更多