gpt4 book ai didi

java - 如何在 Java 项目中构建我的类

转载 作者:太空宇宙 更新时间:2023-11-04 14:56:49 25 4
gpt4 key购买 nike

最近我开始了JAVA的冒险。我正在寻找有关 JAVA 项目的设计模式和整体架构的指导。

我正在做一个小型应用程序项目作为大学作业。这是一个典型的边做边学的项目。该应用程序的 GUI 由 Swing 元素和一些附加类组成。

我面临的问题与缺乏如何将它们结合在一起的想法有关。具体来说,我面临以下问题:

问题 1

登录问题 - 我有自定义的 User 类。我将 current_user 保留为主 JFrame 的属性。

在 GUI 加载期间 - 我想检查用户是否已登录。另外 - 关于特定操作 - 我想注销用户。

目前,我通过一直访问 mainFrame.current_user 属性来解决这两个问题。但我觉得这是不好的做法。由于应用程序中只能有一个用户 - 应该有一种方法来定义全局可见的方法,例如 current_useruser_signed_in()sign_out(current_user) 不调用 JFrame。我的感觉正确吗?

问题 2

在 GUI 初始化期间,我正在创建一个 JTable,它显示使用自定义 WebRequest 类从网络下载的数据。 JTable 数据保存在Object data[][] 中,这是扩展AbstractTableModel 的表模型的属性。现在,我正在应用程序启动时构建数据模型 - 意味着调用 WebRequest,初始化表及其模型。

现在我想改变这种行为。我想在应用程序启动时显示空 JTable - 并仅通过单击 JMenuItem 刷新按钮来调用 WebRequest。

如何处理?目前我唯一的想法是拥有 JTable 数据模型并调用它的方法之一 - 类似于 refresh()。此方法应调用 WebRequest 并更新 JTable。但为此我必须从 JMenuItem 到位于完全不同位置的 JTable

这里有什么更好的方法吗?再说一遍 - 应用程序中只能调用一个数据模型 - 所以可能是与问题 1 类似的问题?

<小时/>

此外,如果您对设计模式有很好的了解,或者有好的开源存储库可供研究 - 我将非常感谢任何建议。

最佳答案

对于你的第一个问题,我建议使用一个名为“Authentication”的外部类。这个类应该有一个 User。该类还可以具有以下方法:signOut(),signIn(字符串用户名,字符串密码),...

对于检查,我应该执行以下操作:

public boolean isLoggedIn(){
if(currentUser != null){
return true;
}else{
return false;
}
}

重要Java 使用命名约定:使用大小写混合,无下划线。

对于第二个问题:

我建议为您的刷新想法搜索观察者模式。

关于java - 如何在 Java 项目中构建我的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23113535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com