多例模式是对单例模式的简单修改,数据库的连接池就是用的该模式。
小汽车类:
package pattern;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2018/7/14.
*/
public class Car {
//私有的静态变量
private static List<Car> carList=new ArrayList<>();
static {
for (int i=0;i<10;i++){
carList.add(new Car());
}
}
//私有的方法,保证外部无法直接生成该对象
private Car(){
}
//获取实例的工厂方法
public static Car getInstance(int index){
return carList.get(index);
}
public void run(){
System.out.println("小汽车呜呜呜。。。");
}
}
主类:
package pattern;
/**
* Created by Administrator on 2018/7/14.
*/
public class Main {
public static void main(String argc[]){
Car car1 = Car.getInstance(1);
Car car2=Car.getInstance(1);
car1.run();
if (car1==car2){
System.out.println("car1 and car2 is the same object");
}
}
}