21 Şubat 2017 Salı

Neden static(keyword) kullanmamalıyız ?

 
     S.a. Arkadaşlar,
    Static tanımların neden kullanılmaması gerektiği ile ilgili bir kaç sebep paylaşmak istedik. İşte bazı sebepler:



Static değişkenler global durumu temsil eder. Ve bu da onu test etmeyi zorlaştırır ve static bu değişkeni her hangi bir kod parçası değiştirebilir, değişen bu değer de bizim istediğimiz değeri almamıza engel olabilir. Static değişkenleri projelerde kullanabilirsin, fakat bu da bağımlılığı (low dependency) artırır. Bağımlılıkla ilgili yazıya buradan ulaşabilirsiniz. Küçük kapsamlarda kullanmak işimize yarayabilir, fakat modülerliği de ortadan kalkmasına sebep olabilir.

Başka bir sebep de Nesne Yönelimli programlamaya zıt bir yapıdır. Çünkü nesneye yönelimli programlada yeni bir nesne oluştururuz. Daha sonra o nesneden belirtilen değişkenlere erişebiliriz. Ogrenci ogrenci = new Ogrenci(); tarzında kullanırız. Fakat static değişken kullandığımızda sadece sınıf ismi ve değişkeni kullanmanız yeterlidir. Ogrenci.staticValue ; Bu da nesneye yönelimli programlama mantığını bozar.

  Başka bir sebep de static değişkenler proje çalışmaya başladığı anda oluşturulur ve program sonlanıncaya kadar çalışmaya devam eder. Fakat nesne oluştururken bu durum farklıdır. Nesne çağrıldığı anda oluşur ve daha sonra çöp toplayıcı tarafından silinir. Java'da bu durumu kendi yapar, fakat c/c++ hatırlarsanız kendiniz bu işi yapmak zorundaydınız.

Bir sebep de static metodlar içinde sadece static olan değişken çalıştırabiliriz. Mesela int i=0; diye bir değişken tanımladık ve biz tanımladığımız bu değişkeni public static void deneme(){} metodunda kullanamayız. Kullanabilmemiz için değişkeni de static yapmamız gerekir ve bu bir süre sonra projenizin her yerinde static değişkenler dolmasına sebep olabilir. Olsun canım nolacak ki derseniz de tekrardan yukarıdaki sebepler göz atmanızı tavsiye ederim :)

Daha ayrıntılı bilgi için bu sayfaya göz atmayı deneyebilirsiniz. İyi çalışmalar dilerim.

Hiç yorum yok:

Yorum Gönder