Przejdź do treści

DevStyle - Strona Główna
Słowo na niedzielę, o (nie)dziedziczeniu

Słowo na niedzielę, o (nie)dziedziczeniu

Maciej Aniserowicz

26 czerwca 2011

Na miękko

Na studiach wpaja się nam zasady programowania obiektowego. Niestety, bardzo często osoby wpajające tą wiedzę mają zerowe doświadczenie w praktycznym jej wykorzystaniu. Mówią coś, bo to samo im kiedyś powiedziano, i tak dalej i tak dalej. Jedną z nieodłącznych cech obiektowości jest oczywiście dziedziczenie. Ileż to razy trzeba było rysować na zajęciach diagramy UML z durną przykładową hierarchią “animal -> mammal -> monkey” czy “vehicle -> engine vehicle -> car“… a nikt tak naprawdę nie wytłumaczył dokładnie “dlaczego to jest takie dobre i dlaczego jest to jedyna droga“.

Po pewnym czasie programista-praktyk dowiaduje się, że to wcale NIE JEST jedyna droga. Że przeładowanie tworzonego rozwiązania skomplikowanymi hierarchiami dziedziczenia wcale nie kończy się dobrze. Poznaje genialną zasadę (niebędącą jednak bezpośrednim bohaterem dzisiejszego odcinka): favor composition over inheritance. Dodatkowo niektórzy umieją ująć to w bardziej interesujący sposób:

In 21st century we don’t care about who you parents were so let’s apply it to classes – don’t use inheritance

Źródło: Kevlin Henney na konferencji NDC (retweeted by Szymon Pobiega)

Zobacz również