单例VS多例
来源:互联网 发布:小智外设店淘宝网 编辑:程序博客网 时间:2024/06/07 02:50
单例模式在我们日常写程序中会用的比较多,例如当我们的程序中提供了配置文件,根据这些配置文件中的内容来决定我么该创建什么类型
的对象,但是IO操作是很浪费时间的,所以在这种情况下,我们就应该使用一个单例模式的类来在程序启动的时候,直接读取配置文件,然后缓
存起来,这样就避免了多次的IO操作,导致机器时间的浪费。但是,使用单例模式也有确定,例如我们在程序运行的时候修改了配置文件,这样
就会导致这种修改会无效,只有在重新启动程序之后,才会起作用,好了不多说了。
单例模式就是在JVM中只存在一个这个类的实例,要想做到这一个点,我们就需要将这个类的构造方法私有化,限制其他类调用这个类的构
造方法,但是我们还是需要这个类的实例呀,所以我们就在这个类的内部调用构造方法,来创建这个类的对象,怎么样才能保证实例的唯一性
呢?对,用静态程序员。好了,看代码!
package viekie.du.Facatory;
/*
* 单例模式
*/
public class Car {
private static Car instance = null;
private Car()
public static Car getInstance(){
if(null==instance){
instance = new Car();
}
return instance;
}
}
再来看看多例模式,多例模式类似于连接池,将对象进行缓存,避免重复创建浪费时间,它与单例模式很相似。
package viekie.du.Facatory;
import java.util.ArrayList;
/*
* 多例模式
*/
public class Car {
private static int index = 0;
private static ArrayList<Car> instance = new ArrayList<Car>();
private Car(){}
private static void init(){
index = 0;
for(int i=0; i<10; i++){
Car c = new Car();
instance.add(c);
}
}
public static Car getInstance(){
Car c = null;
if(null==instance || instance.size()!=0){
c = instance.get(index);
}else{
init();
c = getInstance();
}
instance.remove(index);
index++;
return c;
}
}
- 单例VS多例
- 单例模式VS静态方法VS每次new对象
- 单例模式【Android vs JAVA】
- 单例模式VS静态方法
- 单例模式(饿汉VS懒汉)
- 单例模式VS静态方法
- vs单步调试
- 单例模式之饿汉VS懒汉
- 程序设计之---单例模式VS静态方法
- 程序设计之---单例模式VS静态方法
- 程序设计之---单例模式VS静态方法
- 旁轴 VS 单反
- 单进程 vs 多进程
- VS~单步调试DLL
- 跟我学设计模式视频教程——单例模式,建造者VS工厂方法
- opencv 用 vs 2010 单步 调试;
- VS编译器如何单步调试
- 半数集VS半数单集
- access压缩修复
- 转载: Android 线程通信
- Sportswear as "elegant"
- 维基百科的网站架构
- 迭带加深搜索
- 单例VS多例
- pku1061青蛙的约会
- hibernate 连接DB2
- 迭带加深搜索
- 全国计算机技术与软件专业技术资格(水平)考试
- java中的常用类
- Java 笔试题 二
- Visual Studio2010注册码
- 多线程编程