我实际上有一个单例类,它有两个方法getInstance()和getInstance(param1,param2)。
getInstance()使用默认值初始化单例对象,而getInstance(param1,param2)使用用户定义的参数(param1和param2)初始化单例对象。
但问题出现在用户第一次调用getInstance()并稍后执行getInstance(param1,param2)或反之亦然时。使用不同参数调用getInstance(with params)两次时也是如此。即,首先调用getInstance(param1,param2),然后调用getInstance(param3,param4)。
在所有上述情况下,第二个调用被忽略,因为单个对象只初始化一次,不应再次更改。但是,用户永远不会知道这一切,并且会认为他的第二个电话已成功执行。
有人可以建议解决此问题的最佳方法吗?
答案 0 :(得分:0)
Booth方法应该返回相同的实例,只是第二个实例相应地设置ivas。用户无需了解这一点。关于singelton的想法。如果用户确实需要知道,则在错误情况下返回NULL / Nil。这样你可以判断第二次通话是否不可能。仍然留下了为什么用户需要了解这一点的问题。也许不同的设计策略会更好?