Mix-ins
Gdy w CJC użyłem osobnej klasy (nazwijmy ją A) do
rozszerzenia funkcjonalności innej klasy (B), ale tak, że to
B dziedziczyło po A, to myślałem że stosuję jakiś dziwny,
brudny
trik dla własnej wygody. Później czytając dokumentację do
pylinta spotkałem się z określeniem mix-in class
, nie
wiedziałem co to jest, ale tak jakoś mi się skojarzyło z tym co zrobiłem w
CJC.
Teraz coś podobnego chcę zrobić w PyXMPP, aby podzielić
jeden wielki moduł pyxmpp.stream na mniejsze kawałki.
Przypomniałem sobie o mix-in class
i wrzuciłem to w Google. Okazało się,
że miałem rację. Dowiedziałem, że to znana technika programowania
obiektowego, która wcale nie jest zła. Znalazłem nawet artykuł o tym jak używać mix-ins w
Pythonie. Rzeczywiście Python bardzo ułatwia stosowanie tej techniki.
No to teraz, gdy się podszkoliłem, mogę z czystym sumieniem wziąć się za
wydzielanie StreamSASLMixIn i StreamTLSMixIn.
:-)
Śledzenie komentarzy (RSS)
21 września 2004 22:10:52
Ostrożnie z tym. Klasy domieszkowe tylko tak niewinnie wyglądają...
Ale czasem jest to wygodniejsze, od interfejsów.