Bence sunumunda 13 no'lu slayt ( Değerlerin Değeri ) bunu anlamaya yardımcı olur:
Değerler
- Yapma ihtiyaç yöntemleri
- Sana kod olmadan değerler gönderebilirim
ve sen iyisin
Anladığım kadarıyla Hickey, bana gönderdiğiniz değeri iki katına çıkarmam gerekirse, basitçe şöyle bir kod yazmam gerektiğini söylüyor
MyValue = Double(YourValue)
Görüyorsunuz, yukarıdaki kod aynı, ne tür bir değer yolladığınızın önemi yok - mükemmel bir yeniden kullanım .
Şimdi, bunun nesneleri ve arayüzleri olan dilde nasıl görüneceği?
Doublable MyValue = YourValue.Double()
bekle! Ya YourValue
uygulamıyorsa Doublable
? iki katına çıkamayacağı, mükemmel olabileceği söylenemez ama ... ya da hiçbir yöntem yoksa Double
? (ya denilen bir yöntem varsa TwiceAsMuch
?)
Ah, bir sorunumuz var. YourValue.Double
çalışmayacak, tekrar kullanılamaz . Yukarıdaki slaytı okuduğumda, bu, "Tüm bu arayüzler yeniden kullanımınızı öldürür!" Dediğinde Hickey'nin ne demek istediği ile ilgilidir.
Görüyorsunuz, arayüzler nesnelerin "metotlarıyla birlikte" etraflarında geçirildiğini varsayıyorlar ve bunlar üzerinde çalışan kodlarla. Nesneleri kullanmak için, o kodu nasıl çağıracağınızı, hangi yöntemi çağıracağınızı anlamanız gerekir .
Beklenen yöntem eksik olduğunda, bir sorun vardır, her ne kadar anlamsal olsa da , istenen işlem bir nesne için mükemmel bir anlam ifade eder. Sunumda belirtildiği gibi, değerler metotlara ihtiyaç duymaz ("Size kod olmadan kodları gönderebilirim ve iyisin"), bunlarla ilgili kodları genel bir şekilde yazmanıza olanak tanır.
Yan not: kodsuz değerlerin etrafında dolaşılması kavramı bana bir şekilde OOP'daki bir Flyweight modelini hatırlatıyor .
diğer benzer nesnelerle mümkün olduğu kadar veri paylaşarak bellek kullanımını en aza indiren bir nesne; Basit bir tekrarlanan gösterimin kabul edilemez miktarda bellek kullanması durumunda, nesneleri büyük sayılarla kullanmanın bir yoludur ... Flyweight nesneleri, tanım değer nesnelerine göredir . Nesne örneğinin kimliği sonuçsuzdur, bu nedenle aynı değerde iki Flyweight örneği eşit olarak kabul edilir ...
Kolay düzeltme Genellikle görülen nesne kodu (yöntemleri, arayüzler) sıyırma gibi, iyi, yaklaşık etrafında malzeme geçen aynı yaklaşım takip ziyaretinde kullanımları kod az değerler , kodunu aldıktan bu üzerinde çalışmak için gerekli araçlara sahip olmasıdır bekliyor.
Bu, slaytta olduğu gibi hissettiriyor, "değerler yöntemlere ihtiyaç duymuyor. Size kod olmadan değerleri gönderebilirim ve iyisin".