单例模式有种写法如下:
public sealed class Singleton { private static readonly Singleton m_Instance = new Singleton(); private Singleton() { } public static Singleton GetInstance() { return m_Instance; } }
如果在实例化(new Singleton())时要传递参数怎么办?
那你就传呗....
给我-1的哥们,那你说该怎么办啊。。。
我喜欢单例,也是我学会的第一个模式,就是到现在还从来没想过给单例传参数。
如果每次调用一个实例都需要参数那应该不适用单例了;
人家也没说每次调用都要参数啊。。只是初始化的时候传个参数呗。
public sealed class Singleton { private static Singleton m_Instance; private Singleton(string value) { } public static Singleton GetInstance(string value) { if(m_Instance == null) { m_Instance = new Singleton(value); } return m_Instance; } }
dudu老大,这样的有待商榷啊。。单例还有线程安全的角度上来考虑,怎么感觉不大靠谱啊。
@imfunny: 静态方法是线程安全的
这样不好吧,如果m_Instance已存在,再传value也没用了。
不要 用 你的实现方法,最少 可以用dudu的。也可以用双double
只有一个实例,用属性不是更好吗?
声明一个 带参数的构造函数 就行了
private static readonly Singleton m_Instance = new Singleton(1);
即便参数化,也是返回第一次创建的对象,之后传参感觉没意义;如果想针对每个参数创建一个对象,建议考虑用hashtable来实现