Bir metod yazdığımızı ve o metodun geri dönüş değeri elimizdeki bir arraylist veya referans bazlı bir değişken olduğunu düşünelim. Örneğin list dönsün, Bu sınıfın kullanıcısı da list içindeki ilk eleman üzerinde bir işlem yapacak. Eğer list döndürme işlemini aşağıdaki gibi yaparsak, aslında sorun yok gibi çünkü istenileni vermiş oluyoruz.
class X{
private ArrayList list;
public ArrayList getList() { return list; }
…
}
Peki burada sıkıntı ne? Eğer bütün listeyi verirsek listenin de kontrolünü elden kaybetmiş oluruz. Yani kişi isterse listenin içindeki herşeyi silebilir, değiştirebilir. Bunun önüne geçmek için escape reference dediğimiz yaklaşımı uyguluyoruz. Bunun doğrusu;
class X{
private ArrayList list;
public String getIlkKayit() { return list.get(0); }
…
}
Bu durumda getIlkKayit metodunu kullanan kişi bu liste üzerinde herhangi bir değişiklik yapamayacak. Sadece ilk kaydın içindeki bilgiyi alacaktır. Eğer sadece bir bilgiyi kullanıma açmak istiyorsak, bu bilgiyi tutan veri tabanını açmamamız lazım.
Bir metod yazdığımızı ve o metodun geri dönüş değeri elimizdeki bir arraylist veya referans bazlı bir değişken olduğunu düşünelim. Örneğin list dönsün, Bu sınıfın kullanıcısı da list içindeki ilk eleman üzerinde bir işlem yapacak. Eğer list döndürme işlemini aşağıdaki gibi yaparsak, aslında sorun yok gibi çünkü istenileni vermiş oluyoruz.
class X{ list; getList() { return list; }
private ArrayList
public ArrayList
…
}
Peki burada sıkıntı ne? Eğer bütün listeyi verirsek listenin de kontrolünü elden kaybetmiş oluruz. Yani kişi isterse listenin içindeki herşeyi silebilir, değiştirebilir. Bunun önüne geçmek için escape reference dediğimiz yaklaşımı uyguluyoruz. Bunun doğrusu;
class X{ list;
private ArrayList
public String getIlkKayit() { return list.get(0); }
…
}
Bu durumda getIlkKayit metodunu kullanan kişi bu liste üzerinde herhangi bir değişiklik yapamayacak. Sadece ilk kaydın içindeki bilgiyi alacaktır. Eğer sadece bir bilgiyi kullanıma açmak istiyorsak, bu bilgiyi tutan veri tabanını açmamamız lazım.