为什么这个单例看起来很违和啊

为什么这个单例看起来很违和啊?求指教。
要对接一个系统,然后经常要实例化一个对象给对方。这个对象的参数,比如后期ip会调整,所以做成了可配置的。考虑到经常用到的是同一个对象,就采用单例模式,只是单纯想减少实例化对象的数量而已。下面是简化的代码,但为什么这个单例看起来,很违和。我到底是违反了什么原则?
package com.forezp;

/**
 * Created by 76549 on 2018/9/24.
 */
public class Config {
    private int token;
    private String ip;
    private static Config config=null;
    /**
     * 防止其他引用
     */
    private Config(){

    }
    public static  Config getConfig(String ip, int token){
        if(config==null){
            synchronized (Config.class){
               /* if(config==null){*/
                    config=new Config();
                    config.token=token;
                    config.ip=ip;
               /* }*/
            }
        }else{
            config.token=token;
            config.ip=ip;
        }
        return config;
    }
    public String toString(){
        return ip+token;
    }
    public static void main(String[] args) {
        Config config=Config.getConfig("a",1);
        System.out.println(config.toString());
        Config config1=Config.getConfig("a",1);
        System.out.println(config1.toString());
        Config config2=Config.getConfig("b",2);
        System.out.println(config2.toString());
    }
}

猜你喜欢

转载自blog.csdn.net/lkpklpk/article/details/82828423
今日推荐