2011-05-27 15 views
9

Scala'da yeni ve O'Reilly'den Programlama Scala kitabında yer alan yazarlar, bir özelliği temsil eden bir kod gösteriyor. Bu özelliklerin, Java'daki arayüzlere bir şekilde benzediği göz önüne alındığında (özelliklerin bayt kodunda sınıflar olarak kullanıldığını bilmeme rağmen), bir özelliği ortaya çıkarmak ne demektir ve bunun için uygun bir kullanım örneği/tasarım modeli ne olurdu?Bir özelliği tanıtmak ne anlama geliyor?

Örn:

scala> val x = new T1 with T2 { type z = String val v: z = "Z" } 
x: java.lang.Object with T1 with T2{type z = String; def zv: this.z} = [email protected] 

cevap

17

Ben de Scala makul yeniyim ama yukarıdaki (Java ile yapabileceğiniz gibi) yeni bir anonim nesne oluşturma ve sonra ekleme olduğunu gelmiş örnek düşünüyorum Yeni anonim tipin özelliği.

Scala Özellikleri uygulama kodunu içerebildiğinden, anonim bir sınıfın, Trait'in tüm gereksinimlerini karşıladığını varsayarak ("değerler" ayarını yapmak veya "soyut" yöntemleri tanımlamak gibi) varsaymak için, Temelde davranışı temel olarak ücretsiz olarak alırsınız.

Burada yaptığınız şey, Doğrudan Trace'yi tam olarak değil, Trait'in işlevselliğini, Trait'i genişleten bir sınıfı tanımlamaya gerek kalmadan kullanabilmeniz için, kendisini eklemek için uygun bir nesne oluşturmaktır.

Bu soruya cevap veriyor mu?

+1

Evet, bu çok anlamlı, teşekkürler! +1 –