SORU
10 Kasım 2008, PAZARTESİ


Değişmez ne demektir?

Bu aptalca bir soru daha sormuş olabilir ama bir acemi için tam bir kafa karışıklığı olduğunu düşünüyorum.

  1. Biri ne anlama geldiğini açıklığa kavuşturmak içindeğişmez?
  2. Neden String değişmez mi?
  3. Avantajları sabit nesneler dezavantajları nelerdir?
  4. Neden StringBuilder gibi değiştirilebilir bir nesne Dize ve Başkan Yardımcısı Nazım tercih edilmelidir?

Güzel bir örnek (Java) gerçekten takdir edilecektir.

CEVAP
10 Kasım 2008, PAZARTESİ


Değişmez bir nesne için yapıcı yürütme tamamlandıktan sonra bu örneği değişmiş olabilir.

Bu başvuru nesnenin etrafında, bir başkasının içeriğini değiştirecek önemsemeden geçmek anlamına gelir olarak yararlıdır.Eşzamanlılık ile ilgili, özellikle, asla değişmeyen nesneler ile kilitleme sorunları vardır

örneğin

class Foo
{
     private final String myvar;

     public Foo(final String initialValue)
     {
         this.myvar = initialValue;
     }

     public String getValue()
     {
         return this.myvar;
     }
}

Foo getValue() arayan kişiyi dize metni değiştirmek olduğu konusunda endişelenmenize gerek yok.

Eğer hayal benzer bir sınıf Foo fakat StringBuilder yerine String bir üyesi olarak, o çağırana getValue() mümkün olacaktır değiştirmek StringBuilder özellik Foo örneği.

Ayrıca değişmezliğini tanıdı bulabileceğiniz farklı türde dikkat: Eric Lippert blog article bu konuda bir yazı yazdı. Temelde değişmez ama sahneleri gerçek mutables özel devlet arkasında olan nesneleri (ve bu nedenle güvenli iş parçacığı arasında paylaşılan olamaz).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dive In

    Dive In

    17 Temmuz 2013
  • Random Act of Kindness Video Contest

    Random Act o

    18 EYLÜL 2012
  • xXGAMERrs_Xx

    xXGAMERrs_Xx

    31 Temmuz 2014