我正在使用单例在运行时授予每个对象的唯一副本:
Car object1= CarFactory.createCar(id);
其中 createCar 方法是:
private static ArrayList<Car> cars= new ArrayList<Car>();
public static synchronized Car createCar(int id){
Car result= new Car(id);
int index= cars.indexOf(result);
if (index==-1){
cars.add(result);
return result;
} else {
return cars.get(index);
}
}
问题是,使用这种方法,由于“汽车”集合,每辆汽车总是有一个引用,并且对象的内存永远不会被释放。我该如何改进它?