脚本宝典收集整理的这篇文章主要介绍了从单例谈double-check必要性,多种单例各取所需,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
public class SingleFactory
{
private static Person person = new Person();
private SingleFactory()
{
}
public static Person getInstance()
{
return person;
}
}
特点 |
---|
隐藏类的创建即外部无法进行创建 |
内部初始化好一个完整的类 |
提供一个可以访问到内部实例的方法,这里指的是getInstance |
public class SingleFactory
{
private static Person person ;
static {
person = new Person();
}
private SingleFactory()
{
}
public static Person getInstance()
{
return person;
}
}
public class SingleFactory
{
private static Person person = null;
private SingleFactory()
{
}
public static Person getInstance()
{
try
{
Thread.sleep(30);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
if(person==null){
person=new Person();
}
return person;
}
}
getInstance
方法中我们在获取对象前判断是否已经生成过对象。如果没有在生成对象。这种行为俗称懒,所以叫做懒汉式单例模式 public class SingleFactory
{
private static Person person = null;
private SingleFactory()
{
}
public static Person getIstance()
{
try
{
Thread.sleep(30);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
synchronized (SingleFactory.class)
{
if (person == null)
{
person = new Person();
}
}
return person;
}
}
public class OnFactory {
private static volatile OnFactory onFactory;
public static OnFactory getInstance() {
if (null == onFactory) {
synchronized (OnFactory.class) {
if (null == onFactory) {
onFactory = new OnFactory();
}
}
}
return onFactory;
}
}
以上是脚本宝典为你收集整理的从单例谈double-check必要性,多种单例各取所需全部内容,希望文章能够帮你解决从单例谈double-check必要性,多种单例各取所需所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。