Java Swing应用程序一致性检查中的会话管理
我使用一个类似于单例的类来操作会话,并使这些类易于引用。我有两个类LockPage和HomePage,它们是延迟初始化的。我的单身类课程在这里:Java Swing应用程序一致性检查中的会话管理,java,swing,singleton,session-management,Java,Swing,Singleton,Session Management,我使用一个类似于单例的类来操作会话,并使这些类易于引用。我有两个类LockPage和HomePage,它们是延迟初始化的。我的单身类课程在这里: public class Session{ private static LockPage lock; private static HomePage homePage; private Session() { } public static HomePage getHomePage() { if(homePage==null) {
public class Session{
private static LockPage lock;
private static HomePage homePage;
private Session() {
}
public static HomePage getHomePage() {
if(homePage==null) {
homePage = new HomePage();
}
return homePage;
}
public static LockPage getLockPage() {
if(lock==null) {
lock = new LockPage();
}
return lock;
}
public static void resetEverything() {
lock=null;
homePage = null;
}
}
LockPage首先从main()实例化,成功登录后,主页初始化
在主页类中,如果用户单击注销,将调用:
public void logOUt(){
Session.getHomePage().disposeScreen();
Session.resetEverything();
Session.getLockPage();
}
我需要在其他几个类中使用HomePage类,所以我认为这样的引用可能更好。请让我知道这是一种好方法还是有更好的方法
附言:会话类基本上不是一个单独的类
请让我知道这是否是一个好方法
不,我认为不是。您将代码耦合到特定的实现,并公开地将API的其他部分暴露给篡改,这超出了使用它们的类的责任。。。以前是否有人在您的组件上调用过
removeAll
,如果单击了当前屏幕中的按钮,它应该调用另一个屏幕并处理当前屏幕。因此,对于这种情况,我可以从第一个控制器调用第二个控制器,还是有最佳实践@MadProgrammerRouting从一个视图到另一个视图是一种非常常见的场景。我倾向于使用“路线控制器”,它知道根据特定条件在不同视图之间导航的最佳方式,但基本上是相同的想法。像前端控制器@让我们来看看你,路线控制器,导航控制器,它决定了用户如何通过应用程序路线,它还将协调viewsIt之间的信息传递,称为“观察者模式”