想来主界面、主工作区、文件树和信息窗这些,以后多半也是全局唯一的,所以先去做一个单例,以后通过单例的注册就可以在需要的时候很方便的找到对应的内容。
先去工程下,建一个QHService的模块,然后建一个SingleService的包。
首先写一个SingleInstanceKey的类,类似于一个枚举类型吧,把可能用到的单例的Key放进去,以后就可以按key值访问。将前面想到的几种可能全局唯一的实例的标识放进去。
package SingleService;
/**
* <p> TODU </P>
*
* @author yeager
* @Version V1.1.1.0
* @date 2023/11/24 9:31
*/
public class SingleInstanceKey {
public static final int ServiceManager=0;
public static final int MainFrame=1;
public static final int MainWorkingPanel=2;
public static final int DocumentTreePanel=3;
public static final int IMessagePanel=4;
}
然后写一个SingleInstance类用来存放单例,相当于字典,在生成单例是就放进来,以后要用的时候就从这里取。
package SingleService;
/**
* <p> TODU </P>
*
* @author yeager
* @Version V1.1.1.0
* @date 2023/11/24 9:33
*/
public class SingleInstance {
private static Object[] instanceList=new Object[100];
public static void registerInstance(int key,Object o)
{
instanceList[key]=o;
}
public static Object getInstance(int key)
{
return instanceList[key];
}
}