2009-11-07 22 views
11

Programda değiştirilecek ve korunacak bir sınıf için verileriniz varsa, ancak yalnızca bir üye işlevinde kullanılıyorsa, bu değişkeni yerel bir statik değişkeni yapmak tercih edilir. rutin mi, yoksa sınıfın bir üyesi mi?statik değişkene karşı üye

cevap

15

Soru "veriler program boyunca kullanılacak" değil, "bu sınıfın iki nesnesini yaparsanız, bu verileri paylaşmalarını ister misiniz?" Evet ise, statik yapınız. Hayırsa, yapma.

+2

Teşekkürler. Sınıf üyesi işlevlerdeki yerel statik değişkenlerin bile bu sınıfın tüm nesneleri tarafından paylaşıldığını unutmuşum. – Anonymous

4

Çoğu durumda, hiçbir zaman bir yerel statik değişken kullanmamalısınız ve bunun yerine bir statik üye değişkeni kullanmanız gerektiğini iddia ediyorum. Daha sonra soru, bu değişkenin sınıf örnekleri arasında paylaşılıp paylaşılmayacağı üzerine dejenere olur.

1

Yerel bir değişkenin statik olarak bildirilmesi, yönteminizin artık nesnenin durumundan ayrı bir duruma sahip olduğu anlamına gelir. Bu kodu korurken (kopya kurucu uygulaması, atama, serileştirme gibi) ve okurken (hatalar metot davranışı) birçok hataya yol açabilir.
Bazı iyi nedenleriniz olmadıkça statik yerliler kullanmaktan kaçının (tek düşünebildiğim tek iş parçacıklı tekil uygulama).

İlgili konular