有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

设计模式如何在Java项目中构造我的类

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

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

我所面临的问题与我不知道如何把它们联系在一起有关。具体而言,我面临以下问题:

问题1

登录问题-我有自定义用户类。我将当前用户保留为mainJFrame的属性

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

目前,我通过一直使用mainFrame.current_user属性来解决这两个问题。但我觉得这是个糟糕的方法。由于应用程序中只能有一个用户,因此应该有一种方法可以定义全局可见的方法,如current_useruser_signed_in()sign_out(current_user),而无需调用JFrame。我的感觉对吗

问题2

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

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

如何处理?目前,我唯一的想法是使用JTable数据模型并调用它的一个方法,比如refresh()。此方法应调用WebRequest并更新JTable。但对于这一点,我必须从JMenuItemJTable这是完全不同的位置

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


另外,如果你知道一本关于设计模式的好读物,或者一本好的开源回购书,我会非常感谢你的建议


共 (2) 个答案

  1. # 1 楼答案

    由于您正在寻找一些指导,我建议您看看Oracle tutorial on Swing,并特别注意其中的TableModel use部分,因为它将回答您的第二个问题

    至于第一个,我建议你不要把current_user元素放在JFrame中

    模型视图控制器或模型视图演示器是设计模式的良好起点

  2. # 2 楼答案

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

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

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

    重要Java使用一种命名约定:使用mixedCase,不使用下划线

    关于第二个问题:

    我建议为你的更新想法搜索观察者模式