本篇文章主要介绍了"android 设计模式之单例模式详解",主要涉及到Android方面的内容,对于Android开发感兴趣的同学可以参考一下:
大家对单例模式应该都是耳熟能详,手机内存有限,所以在很多时候我们都需要用到单例模式来减少资源开销,比方涉及到io操作之类,单例模式难点就是在有效降低资源的情况下...
大家对单例模式应该都是耳熟能详,手机内存有限,所以在很多时候我们都需要用到单例模式来减少资源开销,比方涉及到io操作之类,单例模式难点就是在有效降低资源的情况下保证多线程安全
1,饿汉式,一般代码如下
package com.spring.singletonpatten;
/**
* Created by android_swift on 16/5/28.
*/publicclassHurrySingleton {privateHurrySingleton() {
}
publicstaticfinal HurrySingleton hurrySingleton = new HurrySingleton();
publicstatic HurrySingleton getHurrySingleton(){
return hurrySingleton;
}
}
隐藏公共的构造方法,类创建的时候创建一个对象,对外提供一个静态方法,供其他地方调用,永远都只能获取到当前类的唯一一个对象
2,懒汉式,一般代码如下
package com.spring.singletonpatten;
/**
* Created by android_swift on 16/5/28.
*/publicclassLazySingleton {privateLazySingleton() {
}
publicstatic LazySingleton lazySingleton;
publicstaticsynchronized LazySingleton getLazySingleton(){
if (null == lazySingleton){
lazySingleton = new LazySingleton();
}
return lazySingleton;
}
}
同样的道理,也会把public的constactor隐藏起来,但是与之不同的是初始化并非在类创建的时候初始化,而是在第一次调用的时候进行初始化,以后每次调用都会同步一下数据,这样会造成资源的浪费,好处是不需要默认进行初始化,但是相比而言,由于每次都需要同步,而且第一次调用要进行初始化,会造成一定的数据延迟,所以这种方式不推荐
').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('
').text(i));
};
$numbering.fadeIn(1700);
});
});
以上就介绍了android 设计模式之单例模式详解,包括了Android方面的内容,希望对Android开发有兴趣的朋友有所帮助。
本文网址链接:http://www.codes51.com/article/detail_1369535.html