麻烦大家帮忙看看,提个思路
这个不同于单实例就是类似QQ通讯窗口的功能
可以打开多个通讯窗口,但对于每个好友,只能打开一个

解决方案 »

  1.   

    改造单实例模式,建立一个Map存放每个已有的实例,getInstance的时候,先从Map中查找是否已存在,然后更具情况决定是new还是find
      

  2.   

    建立一个Map存放每个已有的实例,再用getInstance,先从Map中查找是否已存在,然后更具情况决定是new还是find.给上面的抢先了
      

  3.   

    给所有好友建立一个boolean列表,指示改好友的窗口是否打开。双击好友之后检查改列表从而判断是否建立窗口。
      

  4.   

    可以在这个类中定义一个STATIC的ARRAYLIST,把创建的对象的hashcode保存下来,然后在新创立对象时,先去比对hashcode就是了.
      

  5.   

    可以用static关键字,只会产生一个变量。
      

  6.   

    赞同 denny008(齐齐)
    给这个类(比如说YourClass)的每个对象一个 object id (OID) 作为map的key
    然后 if(map.containsKey(xxxId))   //xxxId 就是OID
            YourObj=(YourClass)map.get(xxxId)
         else
            YourObj=new YourClass();
            map.put(YourObj.getXXXId(),YourObj);
      

  7.   

    MessageFrame中包含一个id,例如qq中有qq号码。
    根据这个id来寻找已打开的frame,如果没有重新实例化。
    所以需要有一个管理器来管理当前的所有MessageFrame对象。