How to instantiate a Singleton multiple times?

后端 未结 9 1882
醉酒成梦
醉酒成梦 2020-12-19 04:08

I need a singleton in my code. I implemented it in Java and it works well. The reason I did it, is to ensure that in a mulitple environment, there is only one instance of th

9条回答
  •  误落风尘
    2020-12-19 04:56

    You may keep a key on a map and populate instance with key

    public class MultiSingleton {
    /**** Non-static Global Variables ***/
    String status = "";
    private BaseSmartCard bsc;
    /***********************************/
    private static Object lockObject = new Object();
    private String serialNo;
    
    private static Map mappedObjects = new TreeMap();
    
    protected MultiSingleton() {
    
    }
    
    
    public static MultiSingleton getInstance(String serialNo,long slotNo){
        if (mappedObjects.isEmpty() || !mappedObjects.containsKey(serialNo)) {
            MultiSingleton instance = new MultiSingleton();
            instance.setSerialNo(serialNo);
            mappedObjects.put(serialNo, instance);
            return instance;
        } else if (mappedObjects.containsKey(serialNo)) {
            return mappedObjects.get(serialNo);
        }else {
            return null;
        }
    }
    

提交回复
热议问题