——- android培训、java培训、期待与您交流! ———-
为什么要使用单例模式,有什么优点?
单例模式是基于考虑到产生对象太多,会造成内存浪费而实现的一种模式。
根据是否需要延迟加载,又分为“饿汉式”和“懒汉式”。
(一)饿汉式
class Single
{
private static Single instance = new Single();
private Single(){}
private static Single getInstance()
{
return instance;
}
}
在类的内部定义一个静态实例对象,通过静态方法getInstance获得该实例对象,保证了该类产生对象的单一化,不需要每次都开辟内存空间,new新的对象,节约了内存空间。
(二)懒汉式
class Single
{
private static Single instance = null;
private Single(){}
private static Single getInstance()
{
if(instance==null)
{
synchronized(Single.class)
{
if(instance==null)
instance = new Single();
}
}
return instance;
}
}
懒汉式是定义了一个对象,在需要时才进行实例化,形成一个延时加载。
以上代码:
1)通过同步代码块,保证了单例特性,避免了多线程操作时出现安全隐患。
2)通过双重判断,有效地解决了执行效率的问题。