-1

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

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

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

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

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

4

1 回答 1

0

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

于 2013-08-08T09:18:06.247 回答