se8820726
دوشنبه 12 اسفند 1392, 23:02 عصر
سلام من این نمونه کد رو دیدم و اصلا معنیشو نفهمیدم.
لطفا اگه ممکنه یکی اینو توضیح بده:
importjava.util.ArrayList;
importjava.util.List;
publicclass Pool<T>{
publicinterface PoolObjectFactory<T>{
public T createObject();
}
privatefinal List<T> freeObjects;
privatefinal PoolObjectFactory<T> factory;
privatefinalint maxSize;
public Pool(PoolObjectFactory<T> factory, int maxSize){
this.factory= factory;
this.maxSize= maxSize;
this.freeObjects=new ArrayList<T>(maxSize);
}
public T newObject(){
T object =null;
if(freeObjects.size()==0)
object = factory.createObject();
else
object = freeObjects.remove(freeObjects.size()-1);
return object;
}
publicvoid free(T object){
if(freeObjects.size()< maxSize)
freeObjects.add(object);
}
}
مثلا این
Pool<T>
یعنی چی ؟؟
T اینجا کارش چیه ؟؟
چرا اومده تو کلاس Pool<T> یه interface بنام PoolObjectFactory<T> تعرف کرده ؟؟
مگه برای استفاده از interface نباید که اول یه کلاس تعریف کرد و اونو توش implement کرد ؟؟
پس چطور اینکارو نکرده اومده factory.createObject(); رو اجرا میکنه ؟؟
تو اینترنت هیچ توضیح فارسی در مورد اینا پیدا نمیکنم از سایتای خارجی هم اصلا چیزی نمیفهمم.
لطفا اگه ممکنه یکی اینو توضیح بده:
importjava.util.ArrayList;
importjava.util.List;
publicclass Pool<T>{
publicinterface PoolObjectFactory<T>{
public T createObject();
}
privatefinal List<T> freeObjects;
privatefinal PoolObjectFactory<T> factory;
privatefinalint maxSize;
public Pool(PoolObjectFactory<T> factory, int maxSize){
this.factory= factory;
this.maxSize= maxSize;
this.freeObjects=new ArrayList<T>(maxSize);
}
public T newObject(){
T object =null;
if(freeObjects.size()==0)
object = factory.createObject();
else
object = freeObjects.remove(freeObjects.size()-1);
return object;
}
publicvoid free(T object){
if(freeObjects.size()< maxSize)
freeObjects.add(object);
}
}
مثلا این
Pool<T>
یعنی چی ؟؟
T اینجا کارش چیه ؟؟
چرا اومده تو کلاس Pool<T> یه interface بنام PoolObjectFactory<T> تعرف کرده ؟؟
مگه برای استفاده از interface نباید که اول یه کلاس تعریف کرد و اونو توش implement کرد ؟؟
پس چطور اینکارو نکرده اومده factory.createObject(); رو اجرا میکنه ؟؟
تو اینترنت هیچ توضیح فارسی در مورد اینا پیدا نمیکنم از سایتای خارجی هم اصلا چیزی نمیفهمم.