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

  • 3DS Max Tutorials

    3DS Max Tuto

    4 AĞUSTOS 2013
  • BachelorsPadTv

    BachelorsPad

    17 Ocak 2012
  • GWTLecturer

    GWTLecturer

    18 EKİM 2012