我会很清楚地指出:具有参数的单例不是单例。
根据定义,单例是你希望被实例化的对象不超过一次。如果试图将参数提供给构造函数,那么单例的意义是什么?
你有两个选择。如果你希望用一些数据初始化单例,则可以在实例化后用数据加载它,如下所示:
SingletonObj singleton = SingletonObj.getInstance();singleton.init(paramA, paramB); // init the object with data
如果你的单例正在执行的 *** 作是重复发生的,并且每次都使用不同的参数,则最好将这些参数传递给正在执行的main方法:
SingletonObj singleton = SingletonObj.getInstance();singleton.doSomething(paramA, paramB); // pass parameters on execution
无论如何,实例化总是没有参数的。否则,你的单身人士将不是单身人士。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)