Diğer dillerde Python açıklayıcısı protokol analog?

oy
8

Diğer dillerde uygulanan Python tanımlayıcısı protokolü gibi bir şey var mı? Bu sizin içeren sınıfının uygulamasını şişkinlik olmadan modülerlik / kapsülleme artırmak için güzel bir yol gibi görünüyor, ama herhangi bir diğer dillerde de benzer bir şey duymadım. çünkü arama yükü diğer dillerden olasılıkla eksik var mı?

Oluştur 29/08/2008 saat 08:24
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
4

Ben de doğrudan bir eşdeğer duymadım. Muhtemelen özellikle son derece güçlü makro vardır Lisp gibi bir dilde, makrolar ile aynı etkiyi elde edebiliriz.

bu kadar güçlü olduğu için diğer diller benzer şey katmaya başlarsa ben hiç şaşırmam.

Cevap 29/08/2008 saat 08:39
kaynak kullanıcı

oy
0

Yakut ve C # hem kolayca çok Python gibi bir öznitelik için alıcı / ayarlayıcı yöntemleri belirterek erişimcileri yapalım. Ancak, bu doğal olarak başka sınıfta Python verir şekilde bu yöntemler için kod yazmak izin tasarlanmamıştır. Uygulamada, ben onun aynı sınıfta uygulanmıştır açıklayıcısı protokolü yoluyla tanımlı olan bir özellik gördüğüm her zamandan beri, bu konularda ne kadar emin değilim.

DÜZENLEME: Benim disleksi (hangi ı dikkatsiz okuma ortalama) Lanet. Nedense Hep ikisini de yazarak biriyim bile "dekoratör" ve tersi olarak "tanımlayıcısı", okudum. söz ile hiçbir ilgisi yoktur bilgilere de olsa geçerli bilgiler beri dokunulmamış Gönderimimi bırakacağım.

Dönem "dekoratör" kendisi aslında ünlü "Design Patterns" kitabında anlatılan bir tasarım modelinin adıdır. Wikipedia makalesi dekoratör kullanımının farklı programlama dillerinde birçok örnekler içerir: http://en.wikipedia.org/wiki/Decorator_pattern

Bununla birlikte, bu makalede dekoratör nesne yönelimli; Onlar Python dekoratörler etkili değiştirme imkanı sağlayan başka fonksiyonu ile çalışma zamanında bir işlev değiştirerek işlevsel şekilde hareket farklı bir şekilde başka bir mevcut sınıf davranır sağlayan önceden tanımlanmış bir arayüz, vb uygulayan sınıfları / kodu eklemek, o fonksiyonu yerine, vb

Bu Aspect Odaklı programlama gibi Java dünyasında bilinen ve AspectJ'yi Java derleyici bu tür şeyleri yapmak ve Java bayt koduna (Java bir üst kümesidir) sizin AspectJ'yi kodunu derlemek z sağlar.

Ben dekoratörler onların sürümü ne olacağını bilmek C # veya Ruby ile yeterince aşina değilim.

Cevap 08/09/2008 saat 00:31
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more