0 oy
45 gösterim
Merhaba,

Java da geçen escape referance mantığı nedir? Neden bu yöntemden kaçınmalıyız?

Teşekkürler
Java kategorisinde (210 puan) | 45 gösterim

1 cevap

0 oy
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<String> list;
  public ArrayList<String> 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<String> 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.
(4k puan)

İlgili sorular

0 oy
1 cevap
8 Nisan Java kategorisinde heyamigoo (102 puan) sordu | 47 gösterim
0 oy
1 cevap
1 Eylül 2018 Java kategorisinde tolgacelik.art (1.8k puan) sordu | 159 gösterim
0 oy
0 cevap
0 oy
1 cevap
30 Mayıs 2017 Java kategorisinde tolgacelik.art (1.8k puan) sordu | 89 gösterim
+1 oy
1 cevap