Interface icerisindeki gövdesiz metodlarin dışında tanimlanan degiskenler ile normal siniflarimizdaki static ve final anahtar kelimeleri ile kullanilan global degiskenler arasindaki kullanilabilirlik farki nedir ? Interface icerisindeki değişkenlerin durumu da static ve final olan degiskenler gibi sabit degerler icin kullanilabilir mi ?

soruldu: 09 Tem '15, 17:35

keramiozsoy's gravatar image

keramiozsoy
171131619
cevap kabul oranı: 50%

1

Genel olarak Aralarında bir fark yok. İkisi de constanttır. Genelde o interface'i implement eden classın kullanabileceği parametreleri içeriyor o şekilde.. Interface dediğiniz gibi kullanılabildiği gibi, kullanılması mantıki açıdan pek tavsiye edilmez. bunun yerine static classlar daha mantıklıdır yada enum kullanmak. interface in amacı prototiplemek olduğundan kullanımı pek mantıklı değil bence

(09 Tem '15, 20:38) Kazım Kaz%C4%B1m's gravatar image

Selam,

Örnek bir proje ile ayrıca test ettim. Gözden kaçan birşeyler olabilir. Sizde aşagıdaki linkten indirip kontrol edebilirsiniz.

Kaynak kod : INTERFACEDE DEGISKENLER

Bir interface içerisinde public BigDecimal bakiye =BigDecimal.ZERO; yazılması ile

public static BigDecimal bakiye =BigDecimal.ZERO; yazılması aynı iştir. Interface bu değişkeni static olarak dışarı açar. Default değer vermek zorunludur. Uygulama ayakta olduğu sürece ram de aynı adresi kullanır. Aynı adresi günceller. Veritipinin ilkel yada nesne kaynaklı olması farketmez.(int /Integer gibi)

Inerface i analist gibi düşünürsek,

Sadece yapılacak işleri söyleyen ve içeriğe karışmayan özel bir sınıftır. İçerisinde global değişkenler tanımlamak süreçlerin birbirine girmesine ,kod kalitesinin düşmesine ve bakım sürelerinin armasına neden olur.Genelde loose coupling(Esnek Bağ) prensibi içinde kullandığımızdan bu prensibin dışınada çıkmamıza sebeb olacaktır.

Bir süreçle ilgili işlerin tek bir interface de toplanıp methodlar aracılığı ile cevap alınması daha doğru olur.

C# tarafında bu tarz kullanımlarda default parametre vermeye gerek olmadığını duymuştum.

permanent link

cevaplandı: 11 Tem '15, 20:24

BeytullahC's gravatar image

BeytullahC
35015
cevap kabul oranı: 16%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×13
×11
×2

Soruldu: 09 Tem '15, 17:35

Görüntüleme: 365 kez

Son güncelleme: 11 Tem '15, 20:24

powered by BitNami OSQA