给出带有和不带参数的单例getInstance()方法的好方法

时间:2013-08-08 09:10:40

标签: singleton

我实际上有一个单例类,它有两个方法getInstance()和getInstance(param1,param2)。

getInstance()使用默认值初始化单例对象,而getInstance(param1,param2)使用用户定义的参数(param1和param2)初始化单例对象。

但问题出现在用户第一次调用getInstance()并稍后执行getInstance(param1,param2)或反之亦然时。使用不同参数调用getInstance(with params)两次时也是如此。即,首先调用getInstance(param1,param2),然后调用getInstance(param3,param4)。

在所有上述情况下,第二个调用被忽略,因为单个对象只初始化一次,不应再次更改。但是,用户永远不会知道这一切,并且会认为他的第二个电话已成功执行。

有人可以建议解决此问题的最佳方法吗?

1 个答案:

答案 0 :(得分:0)

Booth方法应该返回相同的实例,只是第二个实例相应地设置ivas。用户无需了解这一点。关于singelton的想法。如果用户确实需要知道,则在错误情况下返回NULL / Nil。这样你可以判断第二次通话是否不可能。仍然留下了为什么用户需要了解这一点的问题。也许不同的设计策略会更好?