Python protokół deskryptora analogowe w innych językach?

głosy
8

Czy istnieje coś takiego jak protokół deskryptora Python realizowanego w innych językach? Wydaje się, że to dobry sposób na zwiększenie modularność / hermetyzacji bez wzdęcia realizację Twojego Zawierające klasy, ale nigdy nie słyszałem o podobnej rzeczy w innych językach. Czy jest prawdopodobne, nieobecny z innych języków, ponieważ napowietrznej odnośnika?

Utwórz 29/08/2008 o 08:24
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
4

Ja nie słyszałem o bezpośredni odpowiednik albo. Prawdopodobnie mógł osiągnąć ten sam efekt za pomocą makr, zwłaszcza w języku jak Lisp, która ma bardzo potężne makra.

I nie byłoby w ogóle zaskoczony, gdyby inne języki zaczynają włączać coś podobnego, ponieważ jest tak potężny.

Odpowiedział 29/08/2008 o 08:39
źródło użytkownik

głosy
0

Ruby i C # zarówno łatwo pozwalają tworzyć akcesorów poprzez określenie metod getter / setter dla atrybutu, podobnie jak w Pythonie. Jednak to nie jest przeznaczone do naturalnie pozwalają pisać kod dla tych metod w innej klasy w sposób, który pozwala Python. W praktyce, nie jestem pewien, ile ma to znaczenie, ponieważ za każdym razem widziałem atrybut zdefiniowany przez protokół deskryptora jego zostały wdrożone w tej samej klasie.

EDIT: cera moją dysleksję (przez co rozumiem nieostrożne odczyt). Z jakiegoś powodu zawsze przeczytać „deskryptor” AS „dekorator” i odwrotnie, nawet gdy jestem jedynym wpisując obu z nich. Zostawię mój post nienaruszone, ponieważ ma ważne informacje, choć informacje, które nie ma absolutnie nic wspólnego z pytaniem.

Określenie „dekorator” sam w sobie jest rzeczywiście nazwa wzorca projektowania opisanej w słynnym „Wzorce projektowe” książki. W artykule Wikipedia zawiera wiele przykładów w różnych językach programowania użytkowania dekorator: http://en.wikipedia.org/wiki/Decorator_pattern

Jednak w tym artykule dekoratorów obiektowego; mają zajęcia wykonawczych predefiniowany interfejs, który pozwala innym istniejącej klasy zachowują się inaczej jakoś itp dekoratorów Python działać w sposób funkcjonalny, zastępując funkcję przy starcie z innej funkcji, co pozwala skutecznie zmodyfikować / zastąpić tę funkcję, wstawić kod, itp

Jest to znane w świecie Javy jak programowanie aspektowe i kompilator AspectJ Java pozwala robić tego typu rzeczy i skompilować kod AspectJ (który jest rozszerzeniem Java) do kodu bajtowego Javy.

Nie jestem na tyle obeznany z C # lub Ruby wiedzieć, co ich wersja dekoratorów będzie.

Odpowiedział 08/09/2008 o 00:31
źródło użytkownik

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