在Android开发中,难免要用使用到单例模式。以我自己的开发经验来说,单例模式起到了保护类的对象被随意定义的问题,这样在某种程度上来说,也节约了内存的占用。
更准确一点的描述就是: 当一个类用来管理共享资源的时候,我们就只需要一个对象,比如说是:线程池、缓存、日志对象等等。如果说制作出了多个实例,就会导致很多的问题,例如:程序异常、资源使用过量、结果不一致等等。(此段来自风车的博客)
private static SingleTon single;
private SingleTon(){}
public static SingleTon ins()
{
synchronized(Singleton.class)
{
if(single == null)
{
single = new SingleTon();
}
return single;
}
}
总结: 这种单例模式的书写,既能在单线程中使用,也能在多线程中使用,而且同步锁不是加在ins()方法上面的,因为真正需要同步的是在第一次调用时,之后就不在需要同步这个方法了。之后的每次调用,同步都会是一个累赘,程序执行的效率会降低,所以我把同步锁加在方法的内部。