FreeOZ论坛
标题:
最好的Singleton实现
[打印本页]
作者:
flyspirit
时间:
7-7-2008 16:50
标题:
最好的Singleton实现
Singleton模式是面向对象开发中最常用的模式了,其目的是,一个类在整个进程中只有一个实例,也就是一个对象。一般来说,用以下方法实现:(sample is C# code)
public sealed class logger
{
private static logger instance=null;
pirvate logger()
{
// initilize codes here
}
public static logger getInstance()
{
if ( null == instance )
instance=new logger();
return instance;
}
}
由于constructor是private,外部对象只能够通过getInstance获得此类的实例,而getInstance始终返回该类的静态实例,确保只有一个类实例存在。
但在实际应用中,以上实现没有考虑多线程的问题,把多线程问题考虑进去后,代码会增加不少。
这里有个更加简单的实现 (只适用于.NET)
public sealed class Logger
{
public static readonly Logger loginstance = new Logger();
private Logger(){ …… };
}
这个实现基于:.NET Framework确保静态成员的初始化一定是thread safe的。
这应该是最简单的singleton代码了,可以应用于实际,也可以在面试时使用,如果面试时能够有机会用到,应该会获得加分。
作者:
c3po
时间:
10-7-2008 11:07
不错,俺正拿这个面试别人呢。
可等到了澳洲就要被别人面试了。
欢迎光临 FreeOZ论坛 (https://www.freeoz.org/ibbs/)
Powered by Discuz! X3.2